[RESOLU] Migration de PHP 5.6 à 7.0

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Migration de PHP 5.6 à 7.0

Re: Migration de PHP 5.6 à 7.0

par Alexis06 » 03 mars 2016, 18:40

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 !

Re: Migration de PHP 5.6 à 7.0

par @rthur » 03 mars 2016, 15:47

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);

Migration de PHP 5.6 à 7.0

par Alexis06 » 03 mars 2016, 13:08

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