Как получить абсолютные URI изображения с помощью SimpleHTMLdom

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

  • изображения/_home-ss-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 />';   
}
?>

person yuli chika    schedule 13.04.2011    source источник


Ответы (3)


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

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

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

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

person Treffynnon    schedule 13.04.2011
comment
извините, я долго тестировал, но я решил свой вопрос. некоторые статьи, которые вы нашли, могут работать хорошо. Спасибо еще раз. - person yuli chika; 13.04.2011
comment
!!!Большое предупреждение о переходе по первой ссылке . если вы нажмете на нее, вы попадете на эту страницу!!!! - person Timothy Jeffcoat; 15.01.2016

3 варианта:

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

./ является текущим каталогом, поэтому, если вы находитесь по адресу 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.

person Andbdrew    schedule 13.04.2011