Как спарсить изображения с помощью php?

Здравствуйте!
Подскажите как решить задачу.
Нужно вывести список всех изображений со страницы, и разделить их на две части, которые расположены локально, и на другом сервере. Получается надо проверить с чего начинается атрибут src в теге img, с http:// или нет.

Я нашел парсер, и он работает. С помощью PHP Simple HTML DOM Parser.
Выводит список всех изображений.
<?php 
	include "simple_html_dom.php";

	$html = file_get_html("http://ssau.ru");

	foreach ($html -> find('img') as $element) {
		echo $element-> src . '<br>';
	}
?>

62942f21eed444f68303f3bff7eebfbc.png

Но как разбить их на локальные и нет у меня не получается. Например в два разных div'a.
Я в php не силен.
Кто подскажет?

Заранее благодарен.
  • Вопрос задан
  • 4324 просмотра
Решения вопроса 1
BedwaRe
@BedwaRe
Пиши код
<?
    include "simple_html_dom.php";

    $html = file_get_html("http://ssau.ru");

    foreach ($html -> find('img') as $element) {
        if (strpos($element, "http") === false) {
            echo $element-> src . '<br>';
        }
    }
?>

Выведет только локальные элементы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
OlegLazarenko
@OlegLazarenko
<?php
	include "simple_html_dom.php";

	$html = file_get_html("http://ssau.ru");

	foreach ($html -> find('img') as $element) {
		$imgType = $element->src[0] == '/' ? 'local' : 'remote';
		$imgs[$imgType][] = $element->src;
	}

	echo 'Локальные картинки<br>';
	foreach ($imgs['local'] as $img) echo "$img<br>";

	echo 'Картинки с других серверов<br>';
	foreach ($imgs['remote'] as $img) echo "$img<br>";
?>


Не проверял
Ответ написан
Комментировать
@zetabit
ну список адресов есть, научитесь выделять хост из адреса, придумайте алгоритм (
есть адрес это строка, нужно из строки вырезать хост и сравнить с локальным хостом
например хост вырезать с позиции символов ["://" + 3 - т.к. это три символа] по позицию "/" или до конца строки [если нет символа "/"], нужно учесть что вначале до подстроки "хост" есть еще два таких символа "//"

и реализуйте его, советую посмотреть функции работы со строками в документации php
п.с. и например те строки что без хостов (тоже это определять) вначале считать сразу локальными....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы