Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php



 1) Matcher des noms de fichiers dans un répertoire  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 23)

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.

<?php
/*--- 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]); 



?>



 2) Lister un répertoire selon une extension précise.  
les regex php d'expreg.com
posté par Yves Maistriaux (ID : 32)

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.

<?php
$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.



 3) Parser un fichier html pour remplacer le code déplaisant  
les regex php d'expreg.com
posté par SeB (ID : 35)

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">

<?php

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;

?>




European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::