Имеются такие данные:
$pattern = "/статьи/администрирование/([0-9])+/([0-9])+/";
$string = "/статьи/администрирование/129/123/";
Мне нужен какой-то механизм, который мог бы выудить из $string числа 129 и 123, при чем $pattern может меняться, например, если он будет таким:
$pattern = "/статьи/администрирование/([0-9])+/";
а $string такой:
$string = "/статьи/администрирование/129/";
то вытянуть нужно будет число 129.
Я сделал так:
if(preg_match("~$pattern ~", $string ,$matches)){
echo "<pre>";
print_r($matches);
echo "</pre>";
}
Но получил в массиве $matches не то что нужно, а именно:
Array
(
[0] => /статьи/администрирование/129/123/
[1] => 9
[2] => 3
)
Как сделать так, чтобы в массиве было это:
Array ( [0] => /статьи/администрирование/129/123/ [1] => 129 [2] => 123 )
Кроме замечаний в комментариях, вам надо заменить ограничители в шаблоне (чтоб не экранировать слеши)
$string = '/статьи/администрирование/129/123/';
$pattern = '~/статьи/администрирование/(\d+)/(\d+)/~';
preg_match($pattern, $string, $arr);
var_dump($arr);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости