8721 sujets

Développement web côté serveur, CMS

Bonjour,

Mon hébergeur vient de me signaler qu'il va migrer sa version de php et que, par conséquence, il me faut changer la fonction eregi_replace dans les pages de mon site. Sympa de prévenir donc, oui... mais j'avoue être un peu perdu je ne trouve pas de correspondance à mon code initial.

Ma base est la suivante :

$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));


Bien évidemment elle ne fonctionne plus lorsque je la modifie pour ceci :

$f_3=trim(ucwords(preg_match("/[^a-zA-Z0-9éèàäö\ -]/i", "", $f_3)));


car je pense que le troisième paramètre de eregi_replace ne trouve pas son écho dans preg_match

J'ai beau chercher mais je n'y arrive pas... D'autant plus que mes connaissances en php sont plutôt limitées et que je reprends le code de mon prédécesseur !

Merci d'avance pour votre aide. Smiley cligne
preg_match : fonction sensible à la casse
eregi_ : fonctions insensible à la casse

Jamais mettre de majuscules dans l'expression régulière quand on utilise eregi ^^ sinon c'est ereg qu'il faut employer ^^
Modifié par Lothindil (11 Mar 2013 - 10:11)
Merci pour cette réponse rapide! Smiley biggrin

si je comprends bien, à la base il me faut tout simplement

$f_3=trim(ucwords(eregi_replace("[^a-z0-9éèàäö\ -]", "", $f_3)));


ce qui donnerait avec preg_match (en utilisant /i pour que ce soit insensible à la casse) :

$f_3=trim(ucwords(preg_match("/[^a-z0-9éèàäö\ -]/i", "", $f_3)));


Mais là aussi, mes paramètres entre les parenthèses sont-ils valables ?
Les arguments autres, j'en sais rien, j'utilise ces fonctions très rarement, mais j'ai eu un soucis avec eregi à cause de majuscules qui traînaient y a un bout de temps, alors j'ai gravé ça dans mon cerveau ^^


edit : d'ailleurs, pour remplacer, preg_replace ne suffirait pas ?


edit 2 : fait gaffe d'ailleurs, la fonction eregi est obsolète depuis php 5.3. Je te renvoies au manuel fonction eregi
Modifié par Lothindil (11 Mar 2013 - 10:48)
Merci Loth'

c'est justement parce que eregi devient obsolète que mon hébergeur m'a demandé de la remplacer par preg_replace !
et si tu remplaces ton preg_match par preg_replace, ça marche pas, tout simplement ? (parce que dans le code que tu nous as donné, c'est preg_match que tu emploies Smiley rolleyes )
Exact ! je viens de relire le mail de mon hébergeur et ça semble bizarre de changer du replace par du match ... Smiley confus

Je teste ça tout de suite.
Mail automatique qui détecte eregi et comme on l'utilise plus souvent en match qu'en replace, ils ont balancé ça de base, je pense ^^