[RESOLU] preg_replace(): Deprecated

Petit nouveau ! | 8 Messages

10 févr. 2017, 11:02

Bonjour.

J'ai un souci avec un fichier codé en php 5.3 alors que tout le reste est en php7.0.2 et je me trouve confronté a cette erreur que je n'arrive pas à resoudre.

Code : Tout sélectionner

$sentence=preg_replace('/~([^<>]{1,})~/e', "'<span class=\"helpstart\">'.UTF8_strtoupper('\\1').'</span>'", $sentence);
erreur:
ERROR 2: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
Pourriez-vous SVP m'orienter?
En vous remerciant

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

10 févr. 2017, 12:19

Bonjour,

Qu'as-tu essayé ? Où bloques-tu ?
http://php.net/preg_replace_callback
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

10 févr. 2017, 13:21

Merci pour cette reponse.

j'ai essayé:

Code : Tout sélectionner

$sentence=preg_replace_callback('/~([^<>]{1,})~'.function($m){return '<span class="helpstart">UTF8_strtoupper($m[1])</span>';}, $sentence);
et j'ai l'erreur
:
Catchable fatal error: Object of class Closure could not be converted to string
voila ou je bloque

Mammouth du PHP | 1967 Messages

10 févr. 2017, 14:01

essaie au moin ceci, le php sera inerprété
$sentence=preg_replace_callback('/~([^<>]{1,})~',function($m){return '<span class="helpstart">'.UTF8_strtoupper($m[1]).'</span>';}, $sentence);
Edit bien vu @rthur

Mais d'après le message d'erreur, $m[1] n'est pas une chaine de carctère donc vérifie aussi ce quelle contient
Modifié en dernier par Spols le 10 févr. 2017, 15:07, modifié 1 fois.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

10 févr. 2017, 14:46

Attention, tu as mis un point au lieu d'une virgule avant function
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

11 févr. 2017, 11:13

Bonjour @.

Merci de m'avoir monter mon erreur, maintenant ca roule pour cette partie mais je suis confronté avec un autre blem php7 vs php5.5 un peu plus loin:

Code : Tout sélectionner

eval()'d

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 févr. 2017, 13:54

Sans message d'erreur complet ni le code problématique on ne pourra pas t'aider beaucoup :-D
Quand tout le reste a échoué, lisez le mode d'emploi...