Kommius
Messages postés3Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention 7 septembre 2009
-
17 août 2009 à 15:44
Kommius
Messages postés3Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention 7 septembre 2009
-
7 sept. 2009 à 19:44
Bonjour à tous, :mrgreen:
Je cherche à faire un script relativement simple.
Il s'agit d'aller extraire le contenu d'un fichier, et faire un
stripslashes
sur toutes les lignes contenant un
echo "";
.
Pour le moment, voici le bout de code que j'ai réussi à pondre :
foreach ($matches as $val) {
$processed .= stripslashes($val);
}
} else {
$processed .= $file_contents; //-- Que dois-je mettre ici si le match ne correspond pas?
}
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 21 août 2009 à 14:58
Salut,
Tu devrais jeter un oeil à cette fonction tout à fait intéressante qu'est preg_replace_callback(). Ton expression régulière est correcte (et puis d'ailleurs tu sais mieux que moi si elle l'est ou pas, puisque tu ne donnes pas d'exemple de fichier lu), il te reste à la mettre dans preg_replace_callback et tu feras ton remplacement en une seule ligne.
Cette fonction t'évitera d'ailleurs de te poser la question si pour une ligne la correspondance n'est pas trouvée : parce que comme tu ne parcours que les lignes qui correspondent, les autres sont purement et simplement passées à la trappe... Exemple :
function my_strip($input) {
return stripslashes($input[1]);
}
J'ai modifié un peu l'expression régulière : on autorise des espaces entre echo et le premier guillemet double, et entre les guillemets, on accepte tous les caractères qui ne sont pas des guillemets doubles. Et l'option m permet de considérer le fichier sur plusieurs lignes, pour rendre valable l'assertion de début de ligne (le caractère ^)