PHP достать нужные даные из строки URL

159
20 января 2020, 03:40

Здравствуйте задача такая, имеем переменную с ссылкой, из этой ссылки нужно достать нужные данные, если быть конкретным то вот пример. Имеем строку url "https://vk.com/id11111111?z=video11111111_12345" из нее нужно достать video11111111_12345 затем из него нужно вынуть 11111111 и 12345 присвоив их двум разным переменным. То есть имеем url с которого нам надо вынуть 11111111 и 12345. Это идентификатор юзера и объекта, они разные каждый раз, задача доставать их и обрабатывать дальше. Спасибо за ранние за помощь!

PHP 5.6

Answer 1

Нужно достать video11111111_12345 затем из него нужно вынуть 11111111 и 12345 присвоив их двум разным переменным

Для этого используют регулярные выражения:

$str = 'https://vk.com/id11111111?z=video11111111_12345';
$userID = $objID = false;
! preg_match('~video(\d+)_(\d+)~', $str, $arr) ?: list(, $userID, $objID) = $arr;
// $userID и $objID - ID пользователя и объекта соответственно

См. демо

Answer 2

Возможно есть более элегантное решение, но на первый взгляд как-то так:

$url = 'https://vk.com/id11111111?z=video11111111_12345';
$result = NULL;
parse_str(parse_url($url, PHP_URL_QUERY), $parse_str);
if (isset($parse_str['z']) && preg_match('|^video(\d*)_(\d*)$|i', $parse_str['z'], $parse_str)) {
  $result = [$parse_str[1], $parse_str[2]];
}
var_dump($result);

Результат:

array(2) {
  [0] => string(8) "11111111"
  [1] => string(5) "12345"
}

Либо NULL, если входная ссылка не соответствует тому, что нам нужно.

READ ALSO
SQL сбор данных по префиксам в других базах

SQL сбор данных по префиксам в других базах

Подскажите как правильно сформировать запрос если в одной базе у меня хранятся префиксы городов и по этим префиксам нужно подключиться...

172
Создать динамический маршрут Laravel

Создать динамический маршрут Laravel

на данный момент есть такой маршрут category/{cid}-{clink}/ Получается, что передается только одна категорияА нужно чтобы категории перечислялись...

238
Ошибка при сохранении данных из формы

Ошибка при сохранении данных из формы

Пытаюсь сохранить данные из формы contact form 7, но при сохранении изображения выдаёт ошибку Specified file failed upload test

166
Browsersync + Gulp.js. Не обновляется браузер после изменения php файлов

Browsersync + Gulp.js. Не обновляется браузер после изменения php файлов

При изменении php файлов выводится сообщение "Reloading Browsers

146