当前位置: 首页>>代码示例>>PHP>>正文


PHP FileSystem::ecrire_fichier_si_possible方法代码示例

本文整理汇总了PHP中FileSystem::ecrire_fichier_si_possible方法的典型用法代码示例。如果您正苦于以下问题:PHP FileSystem::ecrire_fichier_si_possible方法的具体用法?PHP FileSystem::ecrire_fichier_si_possible怎么用?PHP FileSystem::ecrire_fichier_si_possible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FileSystem的用法示例。


在下文中一共展示了FileSystem::ecrire_fichier_si_possible方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: compacter

 /**
  * Méthode pour compresser ou minifier un fichier css ou js
  * 
  * Compression ou minification d'un fichier css ou js sur le serveur en production, avec date auto-insérée si besoin pour éviter tout souci de mise en cache.
  * Hors PROD on ne compresse/minifie pas pour faciliter le débugage.
  * On peut toutefois forcer la compression/minification avec GET['minify'] afin d'en tester le bon fonctionnement.
  * Si pas de compression (hors PROD), on ajoute un GET dans l'URL pour forcer le navigateur à mettre à jour son cache.
  * Attention cependant concernant cette dernière technique : avec les réglages standards d'Apache, ajouter un GET dans l'URL fait que beaucoup de navigateurs ne mettent pas le fichier en cache (donc il est rechargé tout le temps, même si le GET est le même) ; pas de souci si le serveur envoie un header avec une date d'expiration explicite...
  * 
  * @param string $chemin    chemin complet vers le fichier
  * @param string $methode   soit "pack" soit "mini" soit "comm"
  * @return string           chemin vers le fichier à prendre en compte (à indiquer dans la page web) ; il sera relatif si non compressé, absolu si compressé
  */
 private static function compacter($chemin,$methode)
 {
   if(substr($chemin,0,4)=='http')
   {
     // Cas d'un fichier distant
     return $chemin;
   }
   $fichier_original_chemin = $chemin;
   $fichier_original_date   = filemtime($fichier_original_chemin);
   $fichier_original_url    = $fichier_original_chemin.'?t='.$fichier_original_date;
   if( (SERVEUR_TYPE == 'PROD') || isset($_GET['minify']) )
   {
     // On peut se permettre d'enregistrer les js et css en dehors de leur dossier d'origine car les répertoires sont tous de mêmes niveaux.
     // En cas d'appel depuis le site du projet il faut éventuellement respecter le chemin vers le site du projet.
     $tmp_appli = ( (!defined('APPEL_SITE_PROJET')) || (strpos($chemin,'/sacoche/')!==FALSE) ) ? TRUE : FALSE ; /* /!\ modif classe Sésamath /!\ */
     // Conserver les extensions des js et css (le serveur pouvant se baser sur les extensions pour sa gestion du cache et des charsets).
     $fichier_original_extension = pathinfo($fichier_original_chemin,PATHINFO_EXTENSION);
     $fichier_chemin_sans_slash  = substr( str_replace( array('./sacoche/','./','/') , array('','','__') , $fichier_original_chemin ) , 0 , -(strlen($fichier_original_extension)+1) ); /* /!\ modif classe Sésamath /!\ */
     $fichier_compact_nom        = $fichier_chemin_sans_slash.'_'.$fichier_original_date.'.'.$methode.'.'.$fichier_original_extension;
     $fichier_compact_chemin     = ($tmp_appli) ? CHEMIN_DOSSIER_TMP.$fichier_compact_nom : CHEMIN_DOSSIER_PROJET_TMP.$fichier_compact_nom ; /* /!\ modif classe Sésamath /!\ */
     $fichier_compact_url        = ($tmp_appli) ?        URL_DIR_TMP.$fichier_compact_nom :        URL_DIR_PROJET_TMP.$fichier_compact_nom ; /* /!\ modif classe Sésamath /!\ */
     $fichier_compact_date       = (is_file($fichier_compact_chemin)) ? filemtime($fichier_compact_chemin) : 0 ;
     // Sur le serveur en production, on compresse le fichier s'il ne l'est pas.
     if($fichier_compact_date<$fichier_original_date)
     {
       $fichier_original_contenu = file_get_contents($fichier_original_chemin);
       $fichier_original_contenu = utf8_decode($fichier_original_contenu); // Attention, il faut envoyer à ces classes de l'iso et pas de l'utf8.
       if( ($fichier_original_extension=='js') && ($methode=='pack') )
       {
         $myPacker = new JavaScriptPacker($fichier_original_contenu, 62, TRUE, FALSE);
         $fichier_compact_contenu = trim($myPacker->pack());
       }
       elseif( ($fichier_original_extension=='js') && ($methode=='mini') )
       {
         $fichier_compact_contenu = trim(JSMin::minify($fichier_original_contenu));
       }
       elseif( ($fichier_original_extension=='js') && ($methode=='comm') )
       {
         // Retrait des commentaires // ... et /** ... */ et /*! ... */
         // Option de recherche "s" (PCRE_DOTALL) pour inclure les retours à la lignes (@see http://fr.php.net/manual/fr/reference.pcre.pattern.modifiers.php).
         $fichier_compact_contenu = trim(
           preg_replace( '#'.'(\n)+'.'#s' , "\n" , 
           preg_replace( '#'.'// '.'(.*?)'.'\n'.'#s' , '' , 
           preg_replace( '#'.'/\*!'.'(.*?)'.'\*/'.'#s' , '' , 
           preg_replace( '#'.'/\*\*'.'(.*?)'.'\*/'.'#s' , '' , 
           $fichier_original_contenu ) ) ) ) );
       }
       elseif( ($fichier_original_extension=='css') && ($methode=='mini') )
       {
         $fichier_compact_contenu = cssmin::minify($fichier_original_contenu);
       }
       else
       {
         // Normalement on ne doit pas en arriver là... sauf à passer de mauvais paramètres à la fonction.
         $fichier_compact_contenu = $fichier_original_contenu;
       }
       $fichier_compact_contenu = utf8_encode($fichier_compact_contenu);  // On réencode donc en UTF-8...
       // Il se peut que le droit en écriture ne soit pas autorisé et que la procédure d'install ne l'ai pas encore vérifié ou que le dossier __tmp n'ait pas encore été créé.
       $test_ecriture = FileSystem::ecrire_fichier_si_possible($fichier_compact_chemin,$fichier_compact_contenu); /* /!\ modif classe Sésamath /!\ */
       return $test_ecriture ? $fichier_compact_url : $fichier_original_url ; /* /!\ modif classe Sésamath /!\ */
     }
     return $fichier_compact_url;
   }
   else
   {
     // Sur un serveur local on n'encombre pas le SVN, en DEV on garde le fichier normal pour debugguer si besoin.
     return $fichier_original_url;
   }
 }
开发者ID:rhertzog,项目名称:lcs,代码行数:82,代码来源:class.Layout.php

示例2: ecrire_fichier_index

 /**
  * Ecrire un fichier "index.htm" vide dans un dossier pour éviter le lsitage du répertoire.
  * 
  * @param string   $dossier_chemin   Chemin jusqu'au dossier
  * @param bool     $obligatoire      Facultatif, TRUE par défaut.
  * @return bool
  */
 public static function ecrire_fichier_index($dossier_chemin,$obligatoire=TRUE)
 {
   $ds = (substr($dossier_chemin,-1)==DS) ? '' : DS ;
   $fichier_chemin  = $dossier_chemin.$ds.'index.htm';
   $fichier_contenu = 'Circulez, il n\'y a rien à voir par ici !';
   if($obligatoire) return FileSystem::ecrire_fichier( $fichier_chemin , $fichier_contenu );
   else return FileSystem::ecrire_fichier_si_possible( $fichier_chemin , $fichier_contenu );
 }
开发者ID:rhertzog,项目名称:lcs,代码行数:15,代码来源:class.FileSystem.php

示例3: foreach

  // Création des fichiers index.htm
  $poursuivre1 = TRUE;
  foreach(FileSystem::$tab_dossier_tmp as $dossier)
  {
    $poursuivre1 = $poursuivre1 && FileSystem::ecrire_fichier_index( $dossier , FALSE /*obligatoire*/ ) ;
  }
  if($poursuivre1)
  {
    $affichage .= '<label class="valide">Fichiers &laquo;&nbsp;<b>index.htm</b>&nbsp;&raquo; créés dans chaque sous-dossier de &laquo;&nbsp;<b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_TMP).'</b>&nbsp;&raquo;.</label><br />'.NL;
  }
  else
  {
    $affichage .= '<label class="erreur">Échec lors de la création d\'un ou plusieurs fichiers &laquo;&nbsp;<b>index.htm</b>&nbsp;&raquo; dans chaque dossier précédent.</label><br />'.NL;
  }
  // Création du fichier .htaccess
  $poursuivre2 = FileSystem::ecrire_fichier_si_possible( CHEMIN_DOSSIER_PRIVATE.'.htaccess' , 'deny from all'.NL );
  if($poursuivre2)
  {
    $affichage .= '<label class="valide">Fichier &laquo;&nbsp;<b>.htaccess</b>&nbsp;&raquo; créé dans le dossier &laquo;&nbsp;<b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_PRIVATE).'</b>&nbsp;&raquo;.</label>'.NL;
  }
  else
  {
    $affichage .= '<label class="erreur">Échec lors de la création du fichier &laquo;&nbsp;<b>.htaccess</b>&nbsp;&raquo; dans le dossier &laquo;&nbsp;<b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_PRIVATE).'</b>&nbsp;&raquo;.</label>.'.NL;
  }
  // Affichage du résultat des opérations
  echo $affichage;
  echo ($poursuivre1 && $poursuivre2) ? '<p><span class="tab"><a href="#" class="step3">Passer à l\'étape 3.</a><label id="ajax_msg">&nbsp;</label></span></p>' : '<p><span class="tab"><a href="#" class="step2">Reprendre l\'étape 2.</a><label id="ajax_msg">&nbsp;</label></span></p>' ;
  exit();
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
开发者ID:rhertzog,项目名称:lcs,代码行数:31,代码来源:public_installation.ajax.php

示例4: exit

    } else {
        FileSystem::supprimer_fichier(CHEMIN_FICHIER_DEBUG_CONFIG, TRUE);
    }
    exit('ok');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Modifier les paramètres des logs phpCAS
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'modifier_phpCAS' && $chemin_logs) {
    $chemin_logs = substr($chemin_logs, -1) == DS ? $chemin_logs : $chemin_logs . DS;
    // Vérifier chemin valide
    if (!is_dir($chemin_logs)) {
        exit('Chemin invalide (le dossier n\'existe pas) !');
    }
    // Tester droits en écriture
    if (!FileSystem::ecrire_fichier_si_possible($chemin_logs . 'debugcas_test_ecriture.txt', 'ok')) {
        exit('Droits en écriture dans le dossier insuffisants !');
    }
    FileSystem::supprimer_fichier($chemin_logs . 'debugcas_test_ecriture.txt');
    // Nettoyer la liste des établissements transmise
    if ($etabl_id_listing) {
        $tab_etabl_id = explode(',', $etabl_id_listing);
        $tab_etabl_id = Clean::map_entier($tab_etabl_id);
        $tab_etabl_id = array_filter($tab_etabl_id, 'positif');
        $etabl_id_listing = count($tab_etabl_id) ? ',' . implode(',', $tab_etabl_id) . ',' : '';
    }
    // ok
    FileSystem::fabriquer_fichier_hebergeur_info(array('PHPCAS_CHEMIN_LOGS' => $chemin_logs, 'PHPCAS_ETABL_ID_LISTING' => $etabl_id_listing));
    exit('ok');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
开发者ID:Qwaseur,项目名称:SACoche,代码行数:31,代码来源:webmestre_debug.ajax.php


注:本文中的FileSystem::ecrire_fichier_si_possible方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。