Général
- Présentation
- Les Symboles
- Les Métacaractères
- Les Ancres et Classes
- Les options
- Constantes prédéfinies
- Equivalences
- Créer un motif
- Les POSIX
- Les PCRE
- Les Plus des PCRE
- Les Assertions Part I
- Les Assertions Part II
- Motif conditionnel
- Mysql et les regex
- Url Rewriting
- Optimisation
- Aide mémoire
Les PCRE
Les POSIX
Pratique
Spécial php
- Conseils et Astuces
- Délimiteur PCRE
- Créer une bdd
- Utiliser du BBcode
- Le binaire
- Faire un panier
- Cases à cocher
- Citations imbriquées
- Colorateur syntaxique
- Les list-box ou combo-box
- Faire un diaporama
- Isset ou empty ?
- Une légende au survol
- Site en plusieurs langues
- Requêtes dynamiques
- Gestion des smiley
- Faire un moteur de template
- Timestamp php/mysql
- Timestamp mysql
- Matcher une adresse email
- Controler des données
Les billets de fred
- Les POSIX... mise en pratique !
- Limiter l'accès à un répertoire
- Alternance de couleurs
- Magic_quotes
- Désactiver les short_tags
- Require ou include : Bench
- Cohérence dans les chaines de caractères
- "echo" : lapin ou tortue ?
- Gérer un formulaire avec plusieurs boutons
- Le formulaire a t'il été soumis ?
- J'ai décidé de grossir
- La guerre des étoiles
- La guerre des boutons
- Headers already sent
- IP, IP, IP, houra !
- Créer un itérateur avec PHP5
- On vous conduit vers la lumière
- Comment utiliser MySQL avec PHP
- Non aux booléens !
- Php.ini : dist /recommended
- Include : gouffre ou fêlure ?
- Simple comme les sessions !
- Simplifier le traitement des erreurs
- Structurez vos applications
- Franchement, t'es trop for !
- Notice: Undefined variable (ou index)
- Proscrire les variables auto déclarées
La regex inclue dans ce petit bout de script permet de matcher certains fichiers afin de les effacer. En l'état, cette fonction ne vous servira peut-être pas, mais elle est modifiable et vous permet de voir les possibilités et fonctionnalités des regex.
/*--- exemple de fichier contenu dans le dossier :
LF_BA-261500Z-28012KT-9999-SCT040.txt
LF_AA-261500Z-28891LT-9999-STT440.txt
Monfichier.txt
Unautrefichier.txt
*/
$dir="truc"; // ton dossier à la place de truc
//--- la fonction pour lister le dossier ---//
function browser($repertoire)
{
$array = array();
$dir = opendir($repertoire);
$i=0;
while ($fichier = readdir($dir)){
if($fichier != "." && $fichier != ".." && $fichier != "index.php"
&& $fichier != "index.php3" && $fichier != "index.html")
{$array[] = "$fichier\n";}
$i++;
}
return $array;
}
//---
$chaine=implode("",browser("$dir/"));
//-----------------------------------------------
preg_match_all('`(LF_.*?\.txt)`',$chaine,$out);
$count=count($mot[0]);
for($i=0;$i<$count;$i++){
$j=$i+1;
echo "Trouvé $j: " .$out[0][$i]."<br>";
//unlink("$dir/".$out[0][$i]);
}
?>
Une petite fonction liste le répertoire et retourne un tableau. On utilise ensuite la fonction PCRE preg_grep, qui permet d'extraire les éléments d'un tableau qui correspondent au masque. Preg_grep recrée un nouveau tableu avec tous les éléments trouvés. Preg_grep offre également la possibilité, grâce à l'option PREG_GREP_INVERT, d'extraire tous ce qui ne correspond pas au masque. Pour l'activer, il suffit de décommenter l'option dans le script.
$rep="truc"; // le répertoire à lister
$ext="txt"; // l'extension sans le point
//--- la fonction de lecture ---//
function lirerep($rep,$ext){
$liste=array();
$lire=opendir($rep);
while($fichier=readdir($lire)){
if($fichier!='.' && $fichier!='..')
{
$liste[]=$fichier;
}
}
$trouve=array_values(preg_grep('`\.'.$ext.'$`',$liste
//,PREG_GREP_INVERT
));
return $trouve;
}
//--- fin fonction ---//
//--- l'affichage ---//
foreach(lirerep($rep,$ext) as $key=>$val){
$key=$key+1;
echo $key.' : '.$val.'<br/>';
}
?>
Pour lister tout ce qui ne correspond pas à l'extension,
il suffit de décommenter l'option PREG_GREP_INVERT
en faisant attention de laisser la virgule.
Bien souvent j' ai du mal à dormir quand je vois certain code html du style <font color=#f0f4f7> ( ^^ ) On a tous nos manies et moi je déteste ne pas voir de doubles quotes mais aussi un code couleur en minuscule. Voici un petit exemple pour parser et remplacer facilement tout les caractères déprimants de votre fichier. Ici on remplacera donc les <font color=#f0f4f7> par <font style="color: #F0F4F7">
function upper_case($preg) {
return '<font style="color: #'.strtoupper($preg[1]).'">';
}
$file = fopen('pas_beau.html','r');
$fp = '';
while (!feof($file)) {
$fp .= fgets($file,4096);
}
$motif = '`<font color=#([a-z0-9]*)>`';
$preg_fp = preg_replace_callback($motif,'upper_case',$fp);
echo $preg_fp;
?>
