PHP: перевести относительные URL img src в абсолютные - PullRequest
2 голосов
/ 13 апреля 2011

Я извлек HTML-страницу, используя cURL, в строку и загрузил ее в DOMDocument.Там я могу получить все теги img и их исходные атрибуты.Моя проблема сейчас ... как я могу сделать эти URL-адреса абсолютными?

Список URL-адресов может содержать всевозможные варианты, например:

Если HTML выбирается из произвольногоURL, какой безопасный способ конвертировать эти URL изображения в абсолютные?Есть ли способ, которым вы можете принять во внимание базовый тег?

Ответы [ 2 ]

1 голос
/ 13 апреля 2011

Вот отличный пример PHP, как это сделать.

function rel2abs($rel, $base) { 
// something
}

Больше хороших примеров:

1 голос
/ 13 апреля 2011

Здесь вы найдете удобную функцию на этой странице :

function absUrl($rel, $base) {
    if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;
    if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;
    extract(parse_url($base));
    $path = preg_replace('#/[^/]*$#', '', $path);
    if ($rel[0] == '/') $path = '';
    $abs = "$host$path/$rel"; 
    $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
    for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}   
    return $scheme.'://'.$abs;
}

$rel - ваш относительный путь, а $base - ваш базовый URL.

...