Получить url картинки в preg_match_all

399
23 июля 2017, 11:50

Через $js=file_get_contents добился вывода картинок но потерял содержимое h2 и url ($item->title и $item->url).

Сейчас картинки все разные как и нужно но h2 и ссылка везде одинаковые.

Помогите, пожалуйста, исправить ошибку в моем коде.

<?php
$js=file_get_contents("http://сайт.ру");
if(preg_match_all("/<a.*?href=\"(.*?)\">.*?<h2.*?>(.*?)<\/h2>/s", $js, $matches))
{
$n = count($matches[1]);
$html = '';
for ($i = 0; $i < $n; $i++)
{
$item->title = $matches[2][$i];
$item->url = $matches[1][$i];
if(preg_match_all('@<img id="banner" src="(.*?)"@smi', $js, $matches))
{
$n = count($matches[1]);
$html = '';
for ($i = 0; $i < $n; $i++)
{
$item->image = $matches[1][$i];
$parts_ur = parse_url($item->url);
$catalog=explode('/', $parts_ur['path']);
$last_catalog=$catalog[count($catalog)-1];  
echo ''.$item->title.' ' . $last_catalog . ' '.$item->image.'';
}
}
}
}
?>

Сделал по другому, так

<?php
$js=file_get_contents("http://сайт.ру");
preg_match_all('@<img id="banner" src="(.*?)"@smi', $js, $matches);
if(preg_match_all("/<a.*?href=\"(.*?)\">.*?<h2.*?>(.*?)<\/h2>/s", $js, $matches))
{
$n = count($matches[1]);
$html = '';
for ($i = 0; $i < $n; $i++)
{
$item->title = $matches[2][$i];
$item->url = $matches[1][$i];
$item->image = $matches[1][$i];
//if(preg_match_all('@<img id="banner" src="(.*?)"@smi', $js, $matches))
//$item->image = $matches[1][$i];
$parts_ur = parse_url($item->url);
$catalog=explode('/', $parts_ur['path']);
$last_catalog=$catalog[count($catalog)-1]; 
echo ''.$item->title.' ' . $last_catalog . ' '.$item->image.'';
}
}
?>

Ссылки и h2 все разные а картинок нет :(

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

Спасибо!

READ ALSO
Авторизация php-mysql

Авторизация php-mysql

Как в php при работе с mysql не вводить каждый раз для определенной операции/запроса имя пользователя и пароль на конкретном примере?

391
Как вывести возраст по дате из базы

Как вывести возраст по дате из базы

Подскажите, есть простая функция

356
Друпал 8 очень долго открываются страницы

Друпал 8 очень долго открываются страницы

Есть windows 10, xampp последний со всем вытекающими, Drupal 8Компьютер не самый древний

252
хранение массива в базе

хранение массива в базе

Когда загружаю картинки на сайт, n картинок одной формой, то адреса в базу заносятся массивом который сереализую через serialize();Непонятная ситуация...

267