Fonction ereg_replace is deprecated
Résolu
nameho
-
nameho -
nameho -
Bonjour,
J'ai un problème de fonction, j'ai bien lu pourquoi etc...
Mais j'ai du mal avec la syntaxe du preg_replace
voici mon code:
Merci de votre aide !
J'ai un problème de fonction, j'ai bien lu pourquoi etc...
Mais j'ai du mal avec la syntaxe du preg_replace
voici mon code:
$decoupe[$i] = preg_replace("([A-Za-z0-9])([^ A-Za-z0-9])", "\\1 \\2", $decoupe[$i]); $decoupe[$i] = preg_replace("([^ A-Za-z0-9])([A-Za-z0-9])", "\\1 \\2", $decoupe[$i]);
Merci de votre aide !
A voir également:
- Fonction ereg_replace is deprecated
- What is my movie français - Télécharger - Divers TV & Vidéo
- Fonction si et - Guide
- Who is on my wifi - Télécharger - Outils Internet
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
3 réponses
Voici mon code :
<?php function MiseEnForme2($param) { $lgmax = 20; $decoupe = explode(" ",$param); $j = 0; for ($i = 0; $i < count($decoupe); $i++) { if ($j < strlen($decoupe[$i])) { $j = strlen($decoupe[$i]); } } if ($j < $lgmax) { return $param; } for ($i = 0; $i < count($decoupe); $i++) { if ($lgmax < strlen($decoupe[$i])) { $decoupe[$i] = substr($decoupe[$i], 0, $lgmax) . " " . MiseEnForme(substr($decoupe[$i], $lgmax, strlen($decoupe[$i]))); } if ($i == 0) { $result = $decoupe[$i]; } else { $result .= " " . $decoupe[$i]; } } return $result; } function MiseEnForme($param) { $lgmax = 20; if (strlen($param) < $lgmax) { return $param; } $decoupe = explode(" ",$param); $j = 0; for ($i = 0; $i < count($decoupe); $i++) { if ($j < strlen($decoupe[$i])) { $j = strlen($decoupe[$i]); } } if ($j < $lgmax) { return $param; } for ($i = 0; $i < count($decoupe); $i++) { if ($lgmax < strlen($decoupe[$i])) { $decoupe[$i] = ereg_replace("([A-Za-z0-9])([^ A-Za-z0-9])", "\\1 \\2", $decoupe[$i]); $decoupe[$i] = ereg_replace("([^ A-Za-z0-9])([A-Za-z0-9])", "\\1 \\2", $decoupe[$i]); } if ($i == 0) { $result = $decoupe[$i]; } else { $result .= " " . $decoupe[$i]; } } return MiseEnForme2($result); }
Tu n'as tenu compte d'aucun de nos commentaires :-(
Modifie comme déjà proposé là :
Comme tu ne donnes pas d'exemples de ce qui doit figurer dans $decoupe, ni d'exemple de ce que tu attends du résultat de preg_replace, on ne peut pas te dire si tes regex font ce que tu penses qu'elles font.
Pour moi, cette combinaison de regex se contente d'insérer des espaces pour séparer les caractères alphanumériques ASCII des autres.
Par exemple :
devient
Si tu veux faire autre chose, dis le, stp.
Dal
Modifie comme déjà proposé là :
$decoupe[$i] = preg_replace("/([A-Za-z0-9])([^ A-Za-z0-9])/", "$1 $2", $decoupe[$i]); $decoupe[$i] = preg_replace("/([^ A-Za-z0-9])([A-Za-z0-9])/", "$1 $2", $decoupe[$i]);
Comme tu ne donnes pas d'exemples de ce qui doit figurer dans $decoupe, ni d'exemple de ce que tu attends du résultat de preg_replace, on ne peut pas te dire si tes regex font ce que tu penses qu'elles font.
Pour moi, cette combinaison de regex se contente d'insérer des espaces pour séparer les caractères alphanumériques ASCII des autres.
Par exemple :
https://forums.commentcamarche.net/forum/affich-27559890-fonction-ereg-replace-is-deprecated
devient
http :// www . commentcamarche . net / forum / affich - 27559890 - fonction - ereg - replace - is - deprecated
Si tu veux faire autre chose, dis le, stp.
Dal
sinon : comme illustré dans les exemples sur https://www.php.net/manual/fr/function.preg-replace.php l'expression (1er paramètre) doit commencer et se terminer par un slash : /
par ailleurs, dans le 2ème paramètre, il est mieux d'écrire $1 et $2 au lieu de \\1 et \\2
Dal