Page 1 sur 1

preg_replace(): Deprecated

Posté : 10 févr. 2017, 11:02
par slicinga
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

Re: preg_replace(): Deprecated

Posté : 10 févr. 2017, 12:19
par @rthur
Bonjour,

Qu'as-tu essayé ? Où bloques-tu ?
http://php.net/preg_replace_callback

Re: preg_replace(): Deprecated

Posté : 10 févr. 2017, 13:21
par slicinga
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

Re: preg_replace(): Deprecated

Posté : 10 févr. 2017, 14:01
par Spols
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

Re: preg_replace(): Deprecated

Posté : 10 févr. 2017, 14:46
par @rthur
Attention, tu as mis un point au lieu d'une virgule avant function

Re: preg_replace(): Deprecated

Posté : 11 févr. 2017, 11:13
par slicinga
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

Re: preg_replace(): Deprecated

Posté : 11 févr. 2017, 13:54
par @rthur
Sans message d'erreur complet ni le code problématique on ne pourra pas t'aider beaucoup :-D