本文整理汇总了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;
}
}
示例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 );
}
示例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 « <b>index.htm</b> » créés dans chaque sous-dossier de « <b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_TMP).'</b> ».</label><br />'.NL;
}
else
{
$affichage .= '<label class="erreur">Échec lors de la création d\'un ou plusieurs fichiers « <b>index.htm</b> » 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 « <b>.htaccess</b> » créé dans le dossier « <b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_PRIVATE).'</b> ».</label>'.NL;
}
else
{
$affichage .= '<label class="erreur">Échec lors de la création du fichier « <b>.htaccess</b> » dans le dossier « <b>'.FileSystem::fin_chemin(CHEMIN_DOSSIER_PRIVATE).'</b> ».</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"> </label></span></p>' : '<p><span class="tab"><a href="#" class="step2">Reprendre l\'étape 2.</a><label id="ajax_msg"> </label></span></p>' ;
exit();
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
示例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');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////