Intereting Posts
Regex для проверки того, имеет ли строка несогласованные скобки? Файлы облачных облаков: загрузка изображений в облачные файлы rackspace с использованием PHP Как получить URI абсолютного изображения с SimpleHTMLDom Использование PHP для преобразования вкладок в пробелы для отображения HTML? IMagicExtension: невозможно прочитать изображение из дескриптора файла Автозаполнение синтаксиса для HTML или PHP в Notepad ++. Не авто-закрыть, автокомпьютер получить ответ «победа / отказ» от mysqli_query PHP vs NodeJS – текстовая RPG Создание / установка XDebug на Mac OSX с помощью MAMP Как добавить значение в массив внутри каждого метода объекта Collection Преобразование смещения временной зоны в дружественное имя в PHP Преобразование специальных символов с помощью htmlspecialchars и htmlentities Проверьте, является ли строка временной отметкой unix Передать javascript переменную в php с помощью ajax, и результат ничего не показывает Защита формы контакта php

Как получить URI абсолютного изображения с SimpleHTMLDom

Я использую simple_html_dom для получения изображений сайта. Но иногда ссылка на изображение не имеет префикса с полным URI домена, например, с помощью http://example.com . Они выглядят как нечто вроде

  • Изображения / _home-сс-21.jpg
  • /_home-ss-22b.jpg
  • ./_1249a7s.png или
  • ../../../a19489s_20110412.jpeg.

Как я могу преобразовать эти URI в абсолютные URI, включая информацию о протоколе и домене.

 <?php header('Content-type:text/html; charset=utf-8'); require_once 'simple_html_dom.php'; $v = 'http://www.typepad.com/'; $html = file_get_html($v); foreach($html->find('img') as $element) { echo $element->src.'<hr />'; } ?> 

Внутри вашего foreach вы можете попробовать следующее, чтобы создать URL-адрес изображений.

 $img_src = $element->src; if(!strstr($img_src, 'http://')) { $img_src = $v . $img_src; } echo $img_src . '<hr /'; 

Есть несколько сценариев, которые могут выполнять эту работу, а также конвертировать относительные URL-адреса в абсолютные URL-адреса:

Я никогда их не пробовал, но они должны помочь вам проделать это.

3 варианта:

  1. Изображение на другом сайте начинается с http: //> использовать прямую ссылку
  2. Изображение начинается с /> использовать исходный URL другого сайта + изображение
  3. Изображение не начинается с /> использовать полный url + путь к директору сайта, который вы проверяете, и добавить изображение

./ является текущим каталогом, поэтому, если вы находитесь на http://example.com, и вы видите изображение с атрибутом src ./hoopy_frood.png, это означает, что весь адрес: http://example.com/hoopy_frood.png

../ означает один каталог вверх, например, на странице http://example.com/ice_cream/sundae.html, если вы видите изображение с атрибутом src ../images/hoopier_is_not_a_word.gif, тогда изображение hoopier_is_not_a_word.gif находится в каталог под названием images, который находится внутри корневого каталога сайта вместе с каталогом ice_cream.