Intereting Posts
Случайный PHP FastCGI / Сброс соединения с помощью одноранговых / неполных заголовков Двойной знак доллара Как подсчитать количество просмотров youtube видео с помощью API YouTube Analytics v3? Php, составной шаблон, плохо, когда ребенок знает о родителе? Объединить 2 многомерных массива и сумму Функция plugins_url () WordPress не работает на общем хостинге mysql multiple и условие Как предотвратить получение двойных / дублированных форм в CakePHP? Перекрестный домен Единый избирательный вход Symfony2 / Doctrine: SQL to DQL для построителя запросов в репозитории, чтобы создать форму поиска PHP include не работает с файлами, отличными от индекса Лучший способ интегрировать результат Javascript с PHP Как я могу получить все уникальные комбинации символов слова? Настроить пути CKFinder динамически с помощью JS, можно ли это сделать? Не удалось включить PHP LDAP, хотя я редактировал php.ini и php_ldap.dll в нужном месте?

Скремблирование изображений ссылок на изображения в PHP

У меня есть веб-сайт, который содержит много разных страниц продуктов, и каждая страница имеет определенное количество изображений в одном формате на всех страницах. Я хочу, чтобы у меня была возможность экранировать ломать URL каждой страницы, чтобы я мог получить URL-адрес каждого изображения с каждой страницы. Идея состоит в том, чтобы создать галерею для каждой страницы, состоящей из изображений с горячей ссылкой.

Я знаю, что это можно сделать в php, но я не уверен, как отказаться от страницы для нескольких ссылок. Есть идеи?

Related of "Скремблирование изображений ссылок на изображения в PHP"

Я бы рекомендовал использовать DOM-парсер, например, собственный DOMDocument PHP . Пример:

$page = file_get_contents('http://example.com/images.php'); $doc = new DOMDocument(); $doc->loadHTML($page); $images = $doc->getElementsByTagName('img'); foreach($images as $image) { echo $image->getAttribute('src') . '<br />'; } 

Вы можете использовать регулярное выражение (regex), чтобы пройти через источник страницы и проанализировать все теги IMG.

Это регулярное выражение выполнит работу довольно хорошо: <img[^>]+src="(.*?)"

Как это работает?

 // <img[^>]+src="(.*?)" // // Match the characters "<img" literally «<img» // Match any character that is not a ">" «[^>]+» // Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+» // Match the characters "src="" literally «src="» // Match the regular expression below and capture its match into backreference number 1 «(.*?)» // Match any single character that is not a line break character «.*?» // Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?» // Match the character """ literally «"» 

Пример кода PHP:

 preg_match_all('/<img[^>]+src="(.*?)"/i', $subject, $result, PREG_PATTERN_ORDER); for ($i = 0; $i < count($result[0]); $i++) { // image URL is in $result[0][$i]; } 

Вам нужно будет немного поработать над решением таких проблем, как относительные URL-адреса.

Мне очень нравится PHP Simple HTML DOM Parser для таких вещей. Пример захвата изображений находится прямо на первой странице:

 // Create DOM from URL or file $html = file_get_html('http://www.google.com/'); // Find all images foreach($html->find('img') as $element) echo $element->src . '<br>'; 

Вы можете это отбросить страницы.

http://simplehtmldom.sourceforge.net/

но для этого требуется PHP 5+.