Как спарсить изображения с помощью 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 не силен.
Кто подскажет?

Заранее благодарен.
  • Вопрос задан
  • 4254 просмотра
Решения вопроса 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
п.с. и например те строки что без хостов (тоже это определять) вначале считать сразу локальными....
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект