Gunakan parse_url () dan parse_str () .
(Anda dapat menggunakan regex untuk apa saja, tetapi regex sangat mudah untuk membuat kesalahan, jadi jika ada fungsi PHP khusus untuk apa yang Anda coba capai, gunakan itu.)
parse_url mengambil string dan memotongnya menjadi array yang memiliki banyak info. Anda bisa bekerja dengan larik ini, atau Anda bisa menentukan satu item yang Anda inginkan sebagai argumen kedua. Dalam hal ini kami tertarik dengan kueri, yaitu PHP_URL_QUERY
.
Sekarang kami memiliki kueri, yaitu v=C4kxS1ksqtw&feature=relate
, tetapi kami hanya menginginkan bagian setelahnya v=
. Untuk ini kita beralih ke parse_str
yang pada dasarnya berfungsi seperti GET
pada string. Dibutuhkan string dan membuat variabel yang ditentukan dalam string. Dalam hal ini $v
dan $feature
dibuat. Kami hanya tertarik pada $v
.
Untuk amannya, Anda tidak ingin hanya menyimpan semua variabel dari parse_url
dalam namespace Anda (lihat komentar mellowsoon). Sebaliknya, simpan variabel sebagai elemen larik, sehingga Anda memiliki kendali atas variabel apa yang Anda simpan, dan Anda tidak dapat menimpa variabel yang ada secara tidak sengaja.
Menyatukan semuanya, kami memiliki:
<?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'];
?>
Contoh kerja
Edit:
hehe - terima kasih Charles. Itu membuat saya tertawa, saya belum pernah melihat kutipan Zawinski sebelumnya:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Jamie Zawinski