У меня есть URL-адреса Facebook ниже (все видео из facebook), и я хочу получить его идентификатор.
- https://mbasic.facebook.com/TrendingInPhilippinesOfficial/videos/1722369168023859/
- https://mbasic.facebook.com/story.php?story_fbid=1722369168023859&id=1388211471439632
Вывод должен быть:
1. 1388211471439632
2. 1388211471439632
Я использовал это регулярное выражение для получения идентификатора.
preg_match("~/videos/(?:t\.\d+/)?(\d+)~i", $_GET['url'], $matches);
echo $matches[1];
Хорошо, это работает на #1
, но на #2
это не работает.
Любое решение в этом вопросе?
2 ответа
Я предполагаю, что вам нужно одно регулярное выражение для обеих ссылок?
$link1 = "https://mbasic.facebook.com/TrendingInPhilippinesOfficial/videos/1722369168023859/";
$link2 = "https://mbasic.facebook.com/story.php?story_fbid=1722369168023859&id=1388211471439632";
$regex = '/(videos|story_fbid)(\/|=)(\d+)(\/|&)?/';
preg_match($regex, $link1, $matches);
preg_match($regex, $link2, $matches2);
Обратите внимание на ?
в конце регулярного выражения, которое позволит анализировать его без завершающего /
или &
. Если вы хотите анализировать идентификатор только тогда, когда есть оба, удалите вопросительный знак из регулярного выражения.
Var_dump $matches
будет:
array(5) {
[0]=>
string(24) "videos/1722369168023859/"
[1]=>
string(6) "videos"
[2]=>
string(1) "/"
[3]=>
string(16) "1722369168023859"
[4]=>
string(1) "/"
}
И var_dump $matches2
будет:
array(5) {
[0]=>
string(28) "story_fbid=1722369168023859&"
[1]=>
string(10) "story_fbid"
[2]=>
string(1) "="
[3]=>
string(16) "1722369168023859"
[4]=>
string(1) "&"
}
Чтобы получить параметры из URL, вы можете использовать функции parse_url и parse_str.
parse_str(parse_url($link2)['query'], $array);
print_r($array);
Выход
Array
(
[story_fbid] => 1722369168023859
[id] => 1388211471439632
)
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.