Parse_url () ve parse_str () kullanın .
(Regexes'i hemen hemen her şey için kullanabilirsiniz, ancak bir hata yapmak çok kolaydır, bu nedenle özellikle yapmaya çalıştığınız şey için PHP işlevleri varsa, bunları kullanın.)
parse_url bir dize alır ve bir sürü bilgi içeren bir diziye ayırır. Bu diziyle çalışabilir veya ikinci bağımsız değişken olarak istediğiniz bir öğeyi belirtebilirsiniz. Bu durumda, sorguyla ilgileniyoruz PHP_URL_QUERY
.
Şimdi sorgumuz var v=C4kxS1ksqtw&feature=relate
, ama sadece parçayı istiyoruz v=
. Bunun için parse_str
temelde bir ipte olduğu gibi çalışırız GET
. Bir dize alır ve dizede belirtilen değişkenleri oluşturur. Bu durumda $v
ve $feature
oluşturulur. Sadece ilgileniyoruz $v
.
Güvende olmak için, tüm değişkenleri parse_url
ad alanınızda saklamak istemezsiniz (mellowsoon'un yorumuna bakın). Bunun yerine, değişkenleri bir dizinin öğeleri olarak depolayın, böylece hangi değişkenleri sakladığınızı kontrol edebilirsiniz ve yanlışlıkla mevcut bir değişkenin üzerine yazamazsınız.
Her şeyi bir araya getirirsek, elimizde:
<?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
?>
Çalışma örneği
Düzenle:
hehe - teşekkürler Charles. Bu beni güldürdü, daha önce Zawinski'nin sözünü hiç görmedim:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Jamie Zawinski