Use parse_url () y parse_str () .
(Puedes usar expresiones regulares para casi cualquier cosa, pero es muy fácil cometer un error, así que si hay funciones PHP específicamente para lo que estás tratando de lograr, úsalas).
parse_url toma una cadena y la corta en una matriz que tiene un montón de información. Puede trabajar con esta matriz o puede especificar el elemento que desea como segundo argumento. En este caso estamos interesados en la consulta, que es PHP_URL_QUERY
.
Ahora tenemos la consulta, que es v=C4kxS1ksqtw&feature=relate
, pero solo queremos la parte posterior v=
. Para esto pasamos a lo parse_str
que básicamente funciona como GET
en una cadena. Toma una cadena y crea las variables especificadas en la cadena. En este caso $v
y $feature
se crea. Solo nos interesa $v
.
Para estar seguro, no solo desea almacenar todas las variables del parse_url
en su espacio de nombres (vea el comentario de mellowsoon). En su lugar, almacene las variables como elementos de una matriz, de modo que tenga control sobre qué variables está almacenando y no pueda sobrescribir accidentalmente una variable existente.
Poniendo todo junto, tenemos:
<?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
?>
Ejemplo de trabajo
Editar:
jeje - gracias Charles. Eso me hizo reír, nunca antes había visto la cita de Zawinski:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Jamie Zawinski