80 votes

PHP Utilisation de RegEx pour obtenir une sous-chaîne d'une chaîne

Je cherche un moyen d'analyser une sous-chaîne à l'aide de PHP et je suis tombé sur preg_match, mais je n'arrive pas à trouver la règle dont j'ai besoin.

J'analyse une page Web et j'ai besoin de récupérer une valeur numérique à partir de la chaîne, la chaîne est comme ceci

 producturl.php?id=736375493?=tm

Je dois pouvoir obtenir cette partie de la chaîne :

736375493

Merci Aaron

106voto

David Fells Points 3829
$matches = array();
preg_match('/id=([0-9]+)\?/', $url, $matches);

Ceci est sûr si le format change. La réponse de slandau ne fonctionnera pas si jamais vous avez d'autres chiffres dans l'URL.

php.net/preg-match

27voto

anubhava Points 172509
<?php
$string = "producturl.php?id=736375493?=tm";
preg_match('~id=(\d+)~', $string, $m );
var_dump($m[1]); // $m[1] is your string
?>

6voto

slandau Points 6710
$string = "producturl.php?id=736375493?=tm";
$number = preg_replace("/[^0-9]/", '', $string);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X