Page 1 sur 1

Valider une IP, remplacer ereg par preg_match !

Posté : 19 juil. 2011, 16:58
par luciole135
Bonjour,
je ne m'y connais pas trop en PHP, mais je dois remplacer une fonction écrite avec ereg car cette dernière n'est plus compatible avec PHP 5.3.

Cette fonction est la suivante :

Code : Tout sélectionner

function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('^([0-9]{1,3}\.){3}[0-9]{1,3}$', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }

est-ce que preg_match(#([0-9]{1,3}\.){3}[0-9]{1,3}#, host) est correct ?

Merci de votre aide !

Re: Valider une IP, remplacer ereg par preg_match !

Posté : 19 juil. 2011, 18:48
par Ryle
Il te manque les apostrophes/guillemets pour délimiter ta chaine (ton masque) et tu as retiré les "^" et "$" qui permettent de spécifier que ton masque doit impérativement couvrir le début et la fin de la chaine.

En gros, ton masque est bon, il suffit juste de rajouter un délimiteur de part et d'autre et de changer le nom de la fonction :)

Re: Valider une IP, remplacer ereg par preg_match !

Posté : 19 juil. 2011, 20:32
par luciole135
Merci beaucoup de la réponse.

Donc si j'ai bien compris je fais ça :

Code : Tout sélectionner

function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('#([0-9]{1,3}\.){3}[0-9]{1,3}#', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }
ou

Code : Tout sélectionner

]function luc_Domain($ip) { $host = gethostbyaddr($ip); if (ereg('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#', $host)) return ""; else return my_substr(strrchr($host, "."), 1); }
Les délimiteurs # sont corrects non ?

lequel des deux est bon ?

Re: Valider une IP, remplacer ereg par preg_match !

Posté : 19 juil. 2011, 21:05
par Ryle
En remplaçant ereg par preg_match ;)

Les deux solutions sont bonnes, mais la seconde est toutefois plus restrictive puisqu'elle contrôle qu'il n'y a rien d'autre que l'adresse IP dans ta chaine :)

Re: Valider une IP, remplacer ereg par preg_match !

Posté : 29 juil. 2011, 09:53
par luciole135
Merci beaucoup, vous êtes un ange :)

Re: Valider une IP, remplacer ereg par preg_match !

Posté : 29 juil. 2011, 16:27
par stealth35
y'a déjà une fonction dans php pour faire ça : filter_var avec FILTER_VALIDATE_IP