Bonjour,
Je suis en train de migrer mes applications de php 5.3 vers 5.5. J'avais un bout de code qui fonctionnait à merveille, mais qui me met désormais une alerte E_DEPRECATED quand j'utilise preg_replace avec l'option "/e".
Voici le bout de code :
Il faut donc que je remplace la fonction preg_replace par preg_replace_callback. Le pb est que je ne comprends pas ce que fait ce bout de code avec pregreplace, car je suis nul en expression régulière. J'ai pourtant essayé plusieurs fois de comprendre tout seul, mais rien n'y fait. En passant, si quelqu'un a un tuto me permettant d'enfin comprendre ce serait top.
Mes questions :
1- Quelqu'un peut-i l m'expliquer ce que fait ce bout de code :
2- Comment remplacer par preg_replace_callback pour avoir le même résultat
Grand merci pour votre réponse.
Je suis en train de migrer mes applications de php 5.3 vers 5.5. J'avais un bout de code qui fonctionnait à merveille, mais qui me met désormais une alerte E_DEPRECATED quand j'utilise preg_replace avec l'option "/e".
Voici le bout de code :
function secure_var_display($varDisplay,$type_secure="") {
$varDisplay = htmlentities(stripslashes($varDisplay), ENT_QUOTES, "ISO8859-15");
if ($type_secure=="br") {$varDisplay = nl2br($varDisplay);}
// Ancien Code en PHP 5.3 qui pose pb en php 5.5
$in = array (
'(<(/?i\b.*?)>)ie',
'(<(/?a\b.*?)>)ie',
'(<(/?b\b.*?)>)ie'
);
$varDisplay = preg_replace($in, "'<'.html_entity_decode('$1',ENT_QUOTES).'>'", $varDisplay);
// Fin Ancien Code en PHP 5.3 qui pose pb en php 5.5
return $varDisplay;
}
Il faut donc que je remplace la fonction preg_replace par preg_replace_callback. Le pb est que je ne comprends pas ce que fait ce bout de code avec pregreplace, car je suis nul en expression régulière. J'ai pourtant essayé plusieurs fois de comprendre tout seul, mais rien n'y fait. En passant, si quelqu'un a un tuto me permettant d'enfin comprendre ce serait top.
Mes questions :
1- Quelqu'un peut-i l m'expliquer ce que fait ce bout de code :
$in = array (
'(<(/?i\b.*?)>)ie',
'(<(/?a\b.*?)>)ie',
'(<(/?b\b.*?)>)ie'
);
$varDisplay = preg_replace($in, "'<'.html_entity_decode('$1',ENT_QUOTES).'>'", $varDisplay);
2- Comment remplacer par preg_replace_callback pour avoir le même résultat
Grand merci pour votre réponse.