Здравствуйте!
У меня есть код
<?php
$js=file_get_contents('https://glopart.ru/ads/adunit/5697/script.js');
if(preg_match('#push\((?<json>.*?)\);#',$js,$match)){
$wares=json_decode($match['json'])->wares;
foreach ($wares as $item) {
echo '<a href="'.$item->url.'" class="blue3" target="_blank">ссылка</a>';
}
}
?>
Результат выполнения ссылки следующего вида glopart.ru/ads/adunit/5697/click/106807
Пожалуйста, помогите под строкой
echo '<a href="'.$item->url.'" class="blue3" target="_blank">ссылка</a>';
вывести конечный id ссылки, в примере это 106807
Главное условие последний слеш, далее это то, что нужно вытащить.
Т.е. нужно как-то на лету получить не только ссылку но и последний каталог, так пробовал
<?php
$js=file_get_contents('https://glopart.ru/ads/adunit/5697/script.js');
if(preg_match('#push\((?<json>.*?)\);#',$js,$match)){
$wares=json_decode($match['json'])->wares;
foreach ($wares as $item) {
echo '<a href="'.$item->url.'" class="blue3" target="_blank">ссылка</a>';
preg_match('/\w+$/', $item->url, $match);
echo '<a href="'.$match.'" class="blue3" target="_blank">каталог</a>';
}
}
?>
вместо id выводит Array :(
Спасибо!
Воспользуйтесь функцией basename():
(PHP 4, PHP 5, PHP 7)
Возвращает последний компонент имени из указанного пути.
echo '<a href="' . basename( $item->url ) . '" class="blue3" target="_blank">каталог</a>';
А ваш код выводит Array, потому что там, действительно, массив:
В случае, если указан дополнительный параметр matches, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] — часть строки, соответствующую первой подмаске, и так далее.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники