Utilisez parse_url () et parse_str () .
(Vous pouvez utiliser des expressions régulières pour à peu près tout, mais il est très facile de faire une erreur, donc s'il existe des fonctions PHP spécifiquement pour ce que vous essayez d'accomplir, utilisez-les.)
parse_url prend une chaîne et la coupe en un tableau contenant un tas d'informations. Vous pouvez travailler avec ce tableau, ou vous pouvez spécifier l'élément que vous voulez comme deuxième argument. Dans ce cas, nous nous intéressons à la requête, qui est PHP_URL_QUERY
.
Nous avons maintenant la requête, qui est v=C4kxS1ksqtw&feature=relate
, mais nous ne voulons que la partie après v=
. Pour cela, nous nous tournons vers parse_str
ce qui fonctionne essentiellement comme GET
sur une chaîne. Il prend une chaîne et crée les variables spécifiées dans la chaîne. Dans ce cas $v
et $feature
est créé. Nous ne sommes intéressés que par $v
.
Pour être sûr, vous ne voulez pas simplement stocker toutes les variables de parse_url
dans votre espace de noms (voir le commentaire de mellowsoon). Stockez plutôt les variables en tant qu'éléments d'un tableau, de sorte que vous ayez le contrôle sur les variables que vous stockez et que vous ne puissiez pas accidentellement écraser une variable existante.
En mettant tout ensemble, nous avons:
<?php
$url = "http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=relate";
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
echo $my_array_of_vars['v'];
// Output: C4kxS1ksqtw
?>
Exemple de travail
Éditer:
hehe - merci Charles. Cela m'a fait rire, je n'ai jamais vu la citation de Zawinski auparavant:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Jamie Zawinski