Використовуйте parse_url () та parse_str () .
(Ви можете використовувати регулярні вирази майже для будь-чого, але в них дуже легко помилитися, тому якщо є функції PHP, спеціально для того, що ви намагаєтеся виконати, використовуйте їх.)
parse_url бере рядок і розрізає його на масив, який містить купу інформації. Ви можете працювати з цим масивом, або ви можете вказати один елемент, який ви хочете, як другий аргумент. У цьому випадку нас цікавить запит, який є PHP_URL_QUERY.
Тепер у нас є запит, який є v=C4kxS1ksqtw&feature=relate, але ми хочемо лише частину після v=. Для цього ми звернемось до того, parse_strщо в основному працює як GETна струні. Він займає рядок і створює змінні, вказані в рядку. У цьому випадку $vі $featureстворюється. Нас лише цікавить $v.
Щоб бути безпечним, ви не хочете просто зберігати всі змінні parse_urlу своєму просторі імен (див. Коментар mellowsoon). Замість цього зберігайте змінні як елементи масиву, щоб ви мали контроль над тим, які змінні ви зберігаєте, і ви не можете випадково перезаписати існуючу змінну.
Збираючи все разом, ми маємо:
<?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
?>
Робочий приклад
Редагувати:
хе-х - дякую Чарльзу. Це змусило мене сміятись, я ніколи раніше не бачив цитати Завінського:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Джеймі Завінський