Начало / Преобразование относительных ссылок в абсолютные |
And-rey: | Преобразование относительных ссылок в абсолютные (09.11.09 20:32) | | Посмотрев статистику увидел что в блог заходят - придется писать .
При парсинге rss заметил что иногда в них помещают относительные ссылки и адреса картинок.
Следующие две функции (PHP) позволяют изменить это.
Преобразование относительных ссылок в абсолютные.
/*
* преобразование относительных ссылок в абсолютные
* $link - ссылка
* $base_url - урл. относительно которого делаем преобразование
* на выходе абсолютная ссылка
*/
function abs_url ($link, $base_url) {
if (!$link) return $base_url;
$host_url = $base['scheme'] . "://" . $base['host'];
if ($parse_url['scheme']) {
$abs_url = $link;
} elseif ($parse_url['host']) {
$abs_url = "http://" . $link;
} else { // ссылка относительная
$abs_url = $host_url . $link;
} elseif (preg_match("!^(\.\./)+!", $link, $tt0)) {
$abs_url = $host_url . $tt2['1'] . "/" . preg_replace("!^(\.\./){{$num}}!", "", $link);
$abs_url = $host_url . dirname($base['path']) . substr($link, 1 );
} else {
$abs_url = $base_url . ((preg_match("!/$!", $base_url))? "":"/") . $link;
}
}
return $abs_url;
}
Преобразование ссылок и адресов картинок в тексте в абсолютные.
(dom здесь использовать нет возможности - это как правило не стандартный html)
/*
* преобразует ссылки и адреса картинок в тексте в абсолютные
* $text - текст
* $base_url - урл. относительно которого делаем преобразование
* на выходе текст с абсолютными ссылками
*/
function abs_url_text ($text, $base_url) {
define(BASE_URL , $base_url); // хм...
$pattern = "!(src|href)\s*=\s*[\"']*(.*?)(?:[\"']|\s|>)!i";
$pattern,
'$matches',
'return $matches[1] . "=\"" . abs_url($matches[2], BASE_URL) . "\"";'
),
$text
);
return $text;
}
|
- RE: Гость: Андрей (22.03.12 03:53)
- RE: Гость: Андрей (22.03.12 03:52)
|
|