[PHP] Problème de regex
Résolu
xxkirastarothxx
Messages postés
380
Date d'inscription
Statut
Membre
Dernière intervention
-
xxkirastarothxx Messages postés 380 Date d'inscription Statut Membre Dernière intervention -
xxkirastarothxx Messages postés 380 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toute la communauté :)
J'ai un soucis de Regex:
Je récupère une chaine de caractère dans une variable correspondant à la réponse de
voici celle qui s'en raproche le plus pour le moment:
Sinon, plutot que de suprimer tout les caractères que je ne veux pas, y'a til un moyen de seulement recuperer ceux que je veux ? genre:
J'ai un soucis de Regex:
Je récupère une chaine de caractère dans une variable correspondant à la réponse de
error_reporting(E_ALL); $cmd = 'ping '.$_SERVER['SERVER_NAME'].' -c 1'; $handle = popen("$cmd 2>&1", 'r'); $read = fread($handle, 2096); pclose($handle);jusque là, pas de soucis, voici l'echo de $read:
"PING mon-site.com (55.60.231.14) 56(84) bytes of data. 64 bytes from ALyon-262-1-17-210.w82-27.abo.free.fr (55.60.231.14): icmp_seq=1 ttl=64 time=3.02 ms --- mon-site.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, ...... "J'ai essayé plusieur regex mais je n'arrive pas a récupéré l'ip (entre parenthèse).
voici celle qui s'en raproche le plus pour le moment:
$ip = preg_replace("#[a-zA-Z]+ \((.+)\) [a-zA-Z]+ #", "$1", $read);Déjà la ça marche pas, et je comprends pas pourquoi ^^
Sinon, plutot que de suprimer tout les caractères que je ne veux pas, y'a til un moyen de seulement recuperer ceux que je veux ? genre:
preg_recup('#\([0-9]{3,}\.[0-9]{3,}\.[0-9]{3,}\)#', $read);Merci d'avance :)
A voir également:
- [PHP] Problème de regex
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Saut de ligne php ✓ - Forum PHP
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
1 réponse
Nan bah c'est bon j'ai réussis à m'en sortir.
Pour ceux que ça intéresse voici le script:
(remplacer $_SERVER['SERVER_NAME'] par n'importe quel URL
/!\ Pensez à mètre la fin de la seconde regex à la ligne suivante comme ci-dessus: cela permet de supprimer les /n (retour a la ligne)
Dans mon cas ce script sert a récupérer l'adresse public (internet) de mon serveur, et non mon adresse privée (locale) comme le faisait $_SERVER['REMOTE_ADDR'].
Pour ceux que ça intéresse voici le script:
(remplacer $_SERVER['SERVER_NAME'] par n'importe quel URL
error_reporting(E_ALL); $cmd = 'ping '.$_SERVER['SERVER_NAME'].' -c 1'; $handle = popen("$cmd 2>&1", 'r'); $read = fread($handle, 2096); pclose($handle); $ip = preg_replace('#[a-zA-Z0-9\.\- ]*\((.+)\)#i', '$1', $read); $ip = preg_replace('#(.+)\)[a-zA-Z0-9 \(\.:_%=\-,/ ]*#i', '$1', $ip);
/!\ Pensez à mètre la fin de la seconde regex à la ligne suivante comme ci-dessus: cela permet de supprimer les /n (retour a la ligne)
Dans mon cas ce script sert a récupérer l'adresse public (internet) de mon serveur, et non mon adresse privée (locale) comme le faisait $_SERVER['REMOTE_ADDR'].