Page 1 sur 1

Migration de PHP 5.6 à 7.0

Posté : 03 mars 2016, 13:08
par Alexis06
Bonjour,

Je rencontre une érreur sur ma page contact lors de l'envoie d'email depuis la migration vers PHP 7.0.3 sur mon serveur.

La fonction incriminée est EREG :

Code : Tout sélectionner

$resultats = ereg('^[^@]+@[^@]+\.[^@\.]+$', $msg_email, $poubelle);
J'ai essayé de remplacer ereg avec preg_replace mais sans pouvoir modifier son contenu car manque de connaissance :(

Code : Tout sélectionner

$resultats = preg_replace('^[^@]+@[^@]+\.[^@\.]+$', $msg_email, $poubelle);
Du coup, celà ne fonctionne pas.

Pouvez vous m'aider ? merci d'avance

Re: Migration de PHP 5.6 à 7.0

Posté : 03 mars 2016, 15:47
par @rthur
Bonjour,

Il faut que ton expression régulière soit encadrée par des caractères identiques.
Dans la doc PHP, c'est souvent des slashes "/" qui sont utilisés, pour ma part je te recommande le caractère ` (AltGr + 7 sur un clavier sous Windows) pour être sûr qu'il n'y ait pas de problème si ta variable contient un slash.
$resultats = preg_replace('`^[^@]+@[^@]+\.[^@\.]+$`', $msg_email, $poubelle);
L'avantage de ces caractères d'encadrement c'est notamment qu'ils permettent d'ajouter des options comme par exemple l'insensibilité à la casse en ajoutant la lettre "i"
$resultats = preg_replace('`^[^@]+@[^@]+\.[^@\.]+$`i', $msg_email, $poubelle);

Re: Migration de PHP 5.6 à 7.0

Posté : 03 mars 2016, 18:40
par Alexis06
Merci bien, ça fonctionne avec les encadrements. Par contre je me suis trompé, il fallait un preg_match et non un preg_replace. :) Mais Merci bcps, ça m’enlève une belle épine du pied !