J'ai une chaîne comme ceci:regex pour analyser une chaîne de type URL en PHP
et je veux extraire le
Nnp82q3b844
partie de celui-ci à savoir la partie entre/v/et le premier &.
Y at-il et moyen facile de le faire en PHP?
J'ai une chaîne comme ceci:regex pour analyser une chaîne de type URL en PHP
et je veux extraire le
Nnp82q3b844
partie de celui-ci à savoir la partie entre/v/et le premier &.
Y at-il et moyen facile de le faire en PHP?
Vous n'avez pas besoin d'expressions régulières dans ce cas, vous pouvez utiliser la fonction parse_url
pour effectuer le travail.
<?php
$url = 'http://username:[email protected]/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
L'exemple ci-dessus sortie:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
@ Pentuim10: bonne fonction, je n'ai pas utilisez-le, j'ai appris quelque chose aujourd'hui grâce à vous! – RageZ
+1 pour la meilleure solution. –
@RageZ Merci. Regardez dans mes autres réponses, sur mon profil, qui ont été mises à jour, vous trouverez peut-être plus à apprendre. – Pentium10
oui, il ne devrait pas être trop dur un regard here pour vous référence ou de comprendre ma réponse
après pour l'expression régulière
quelque chose comme ça devrait le faire
preg_match('|http://www.youtube.com/v/([^&]+)&hl=en_US&fs=1&|', $url, $match);
var_dump($match[1]);
Le [^&]+
signifie fondamentalement plus qu'un ou un caractère qui n'est pas un '&', '[]' définissent certaines possibilités de caractères [^] le font inverser de sorte que tout caractère ne soit pas dans la parenthèse, + signifie 1 ou plus Le personnage
Mais vous avez mieux à regarder par vous-même!
Je vous conseille vraiment de bien regarder les expressions régulières car cela peut vraiment vous faire économiser des heures de travail et une fois que vous avez compris comment cela fonctionne, c'est vraiment utile!
$str="http://www.youtube.com/v/Nnp82q3b844&hl=en_US&fs=1&";
$s = parse_url($str);
$t = explode("/", $s["path"]);
print preg_replace("/&.*/","",end($t));
Lecture des règles de docs. Et obtenir une prise en main de base sur les expressions régulières n'est pas si difficile: docs de PHP: http://de.php.net/manual/en/reference.pcre.pattern.syntax.php – Boldewyn