Сценарий, который я использую, 'получает' html-страницу и анализирует, показывает только изображения .jpg внутри, но мне нужно внести некоторые изменения, и когда я это делаю, это просто не получается ...
Это работает:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
echo '<img src='.$e->src .'><br>';
Однако есть некоторые проблемы ... Я хочу показывать изображения только определенного размера, плюс некоторые сайты не отображают полный URL-адрес в теге img, поэтому нужно попытаться обойти это.это тоже ... поэтому я сделал следующее:
include('simple_html_dom.php');
function getUrlAddress() {
$url = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $url .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
$html = file_get_html($url);
foreach($html->find('img[src$=jpg]') as $e)
$image = $e->src;
// check to see if src has domain
if (preg_match("/http/", $e->src)) {
$image = $image;
} else {
$parts = explode("/",$url);
$image = $parts['0']."//".$parts[1].$parts[2].$e->src;
}
$size = getimagesize($image);
echo "<br /><br />size is {$size[0]}";
echo '<img src='.$image.'><br>';
Это работает, но возвращает только первое изображение.
В приведенном ниже примере ссылки есть 5 изображений, которые первоекод показывает, но не отображает их, поскольку src не имеет ведущего домена
Пример ссылки, как упомянуто выше
Есть ли лучший способ сделать это?И почему цикл выходит из строя?