В данном уроке мы с вами научимся парсить картинки.

Работа с картинками

На самом деле парсить картинки не сложно. Достаточно получить url картинки, обратиться к нему через file_get_contents, и затем полученную картинку записать в файл с помощью file_put_contents.

Пусть, к примеру, по ссылке http://site.ru/img.png лежит картинка (на самом деле ее там нет, просто для примера). Давайте получим ее по ссылке и сохраним в файл 'img.png':

<?php
	$img = file_get_contents('http://site.ru/img.png');
	file_put_contents('img.png', $img);
?>

Вот, в общем-то и вся работа с картинками. Остальное нюансы, которые вы отработаете на задачах из задачника.

Проблема урлов картинок и ссылок

Как вам должно быть известно, существуют абсолютные пути и относительные. Пример: ссылка http://site.ru/folder/subfolder/page.html - абсолютная, а ссылка folder/subfolder/page.html - относительная.

Учтите, что то, куда ведет относительная ссылка, зависит от той страницы, где она расположена. Давайте разберемся более подробнее.

Пример: мы парсим страницу сайта, url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/folder/subfolder/image.png. Давайте разберем все возможные варианты.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="/image.png" - с начальным слешем (эта ссылка тоже абсолютная, только без http в начале). В этом случае реальный абсолютный путь к картинке такой: http://site.ru/image.png.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="images/image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/folder/subfolder/images/image.png.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="/images/image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/images/image.png.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="../image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/folder/image.png, так как конструкция ../ поднимает нас на папку выше.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="../../image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/image.png, так как конструкция ../../ поднимает нас на две папки выше.

Пусть url страницы http://site.ru/folder/subfolder/index.html. На этой странице расположена картинка src="http://site.ru/folder/subfolder/../image.png". В этом случае реальный абсолютный путь к картинке такой: http://site.ru/folder/image.png, так как конструкция ../ поднимает нас на две папки выше.

Думаю, вам понятно, что в данном случае разницы между картинками и ссылками никакой нет - все пути строятся одинаково. То же самое относится к путям к CSS файлам, если они вам вдруг понадобятся (всякое бывает).

В общем, я думаю, общая логика ясна.

Особенности картинок

Учтите, что на сайтах картинки не всегда хранятся в атрибуте src. Они могут быть и в href ссылок, и даже в такой конструкции - style="background: url(...)".