Fonction ereg_replace is deprecated
Résolu/Fermé
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
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
3 réponses
Utilisateur anonyme
10 avril 2013 à 11:52
10 avril 2013 à 11:52
Salut salut,
Quel est le message d'erreur? A quoi ressemble les chaines contenues dans $decoupe?
Quel est le message d'erreur? A quoi ressemble les chaines contenues dans $decoupe?
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); }
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 11/04/2013 à 10:43
Modifié par [Dal] le 11/04/2013 à 10:43
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
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 12:37
10 avril 2013 à 12:37
modifie ton fichier php.ini la ligne de error_reporting par ça :
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
10 avril 2013 à 12:56
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