Usa parse_url () e parse_str () .
(Puoi usare le regex per qualsiasi cosa, ma sono molto facili da commettere, quindi se ci sono funzioni PHP specifiche per quello che stai cercando di realizzare, usa quelle.)
parse_url prende una stringa e la taglia in un array che ha un sacco di informazioni. È possibile lavorare con questo array oppure specificare un elemento desiderato come secondo argomento. In questo caso siamo interessati alla query, che è PHP_URL_QUERY.
Ora abbiamo la query, che è v=C4kxS1ksqtw&feature=relate, ma vogliamo solo la parte successiva v=. Per questo passiamo a quello parse_strche sostanzialmente funziona come GETsu una stringa. Prende una stringa e crea le variabili specificate nella stringa. In questo caso $ve $featureviene creato. Siamo interessati solo a $v.
Per sicurezza, non vuoi semplicemente archiviare tutte le variabili dal parse_urlnel tuo spazio dei nomi (vedi il commento di mellowsoon). Memorizza invece le variabili come elementi di un array, in modo da avere il controllo su quali variabili stai memorizzando e non puoi sovrascrivere accidentalmente una variabile esistente.
Mettendo tutto insieme, abbiamo:
<?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
?>
Esempio funzionante
Modificare:
hehe - grazie Charles. Mi ha fatto ridere, non avevo mai visto la citazione di Zawinski prima:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Jamie Zawinski