Получить ссылку на картинку с помощью $js=file_get_contents

12
S
На сайте с 13.11.2012
Offline
72
#11

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

<?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, метод тыка не помог...

Спасибо!

S
На сайте с 30.09.2016
Offline
469
#12

Если Вы хотите взаимно однозначно увязать title, url, и img, как они связаны в первоисточнике, тогда Вам надо изобретать другую регулярку, исходя из структуры первичного документа. Иначе может получиться каша из разнородных элементов, если в документе попадётся ссылка без картинки.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий