Я использую simple_html_dom
для получения изображений сайта. Но иногда ссылка на изображение не имеет префикса с полным URI домена, например, с помощью http://example.com
. Они выглядят как нечто вроде
Как я могу преобразовать эти 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 варианта:
./ является текущим каталогом, поэтому, если вы находитесь на 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.