Je suis en train d'écrire un regex pour analyser une URL pour ce script php:Regex parser URL megavideo
http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780
pour obtenir ceci: B4PZHP0N
Quelqu'un peut-il aider? Merci d'avance.
Je suis en train d'écrire un regex pour analyser une URL pour ce script php:Regex parser URL megavideo
http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780
pour obtenir ceci: B4PZHP0N
Quelqu'un peut-il aider? Merci d'avance.
Puisque vous êtes en PHP, il suffit d'utiliser parse_url
et substr
:
$mega = 'http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780';
$want = substr(parse_url($mega, PHP_URL_PATH), 3, 8);
Démo: http://ideone.com/f3viH
/([^:.\/]+)[a-f0-9]{32}/
Donc, si elle correspond, B4PZHP0N est dans un tampon de capture 1, à savoir: $ 1
J'ai fait quelque chose de similaire mais un peu plus générique. si l'id peut venir soit après/v /,? V = ou & v =
$url = 'http://www.megavideo.com/v/B4PZHP0Nb2e8a877f8378e778446318596415780';
foreach (array('/v/', '?v=', '&v=') as $k)
{
$pos = strpos($url, $k);
if ($pos>0)
{
$pos += strlen($k);
break;
}
}
if (!$pos)
die("not found");
$id = substr($url, $pos, 8);
die($id);
Vous devez utiliser les fonctions de sous-chaînes de votre langue. – xanatos