Problème d'utilisation de la fonction preg_replace (ou ereg_replace)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'utilisation de la fonction preg_replace (ou ereg_replace)

par dunbar » 06 juil. 2009, 23:17

Salut
ereg_replace"[^/\"'.][a-zA-Z0-9_]*\.php",'strtolower(\0)',$ligne); 
Là déjà il manque une parenthèse. :wink:

Problème d'utilisation de la fonction preg_replace (ou ereg_

par Pierreuh » 06 juil. 2009, 10:18

Bonjour,

j'essaie en vain d'utiliser l'un de ces deux fonctions : preg_replace et ereg_replace afin d'éditer à la voler un ensemble de fichiers présents sur mon disque.

le but est de remplacer toutes les occurences de lien vers des pages où les liens sont en Majuscules de temps à autre, par des liens en minuscule.

ex : "/FW/TesT.php" >> "/FW/test.php"
"../FW/PAGE.php" >> "../FW/page.php"
et caetera...

En passant tout le code de lecture du fichier jusqu'à l'endroit qui m'intéresse :

j'ai une variable : $ligne, qui contient une ligne complète du fichier.

un test avec la fonction "ereg" fonctionne bien :


 if (ereg("[^/\"'.][a-zA-Z0-9_]*\.php",$ligne,$t))

ici, j'aurai bien dans $t[0] une ligne qui est à modifier.

l'expression régulière que j'ai faite me retourne : "PAGE.php" par exemple dans $t[0]

par contre, si j'utilise la même expression régulière dans un ereg_replace ou un preg_replace, aucune occurence n'est modifiée ?
 ereg_replace"[^/\"'.][a-zA-Z0-9_]*\.php",'strtolower(\0)',$ligne); 

quelqu'un saurait-il comment écrire correctement mon expression régulière afin qu'elle soit bien intérprétée par la fonction preg_replace ?
J'ai essayé de protéger les guillemets, les quotes.. mais rien n'y fait, que ce soit ereg ou preg replace, mon expression n'est jamais matchée.


En vous remerciant de l'attention portée à ce post, n'hésitez pas à demander des précisions s'il en manque.

Merci !