Задача состоит в том чтобы пропарсить контент и заменить все прямые ссылки вида
http://yunaliev.ru/
на http://yunaliev.ru/redirect.php?goto=http://yunaliev.ru/
В WordPress есть плагины для этого, которые делают все автоматически. Я не смотрел их код и как там реализовано не могу сказать, возможно чуть позже найду время для этого. В битриксе это нет к сожалению, по крайне мере я этого не нашел в стандартном API классе парсинга для форума и доп функциях для работы с текстом и html. Возможно решение не самое лучшее, но оно работает.
Мне очень нравится класс для парсинга html PHP Simple HTML DOM Parser именно его я использовал для решения этой задачи. Решение было нужно для форума битрикса, чтобы убрать все прямые ссылки:
Вот собственно сам код:
[source language=’php’]
include ($_SERVER [«DOCUMENT_ROOT»] . ‘/simple_html_dom/simple_html_dom.php’);
$html = new simple_html_dom();
# Строка
$html->load(‘http://yunaliev.ru‘);
# Выбираем все теги в массив
$arObject = $html->find(‘a’);
[/source]
Функция для битрикса. Ложим библиотеку в /bitrix/php_interface/lib/
[source language=’php’]
function parserActivLinkGoTuRedirect($sMassagePost)
{
require ($_SERVER [«DOCUMENT_ROOT»] . «/bitrix/php_interface/lib/simple_html_dom.php»);
$html = new simple_html_dom();
$html->load($sMassagePost);
$arObject = $html->find(‘a’);
foreach ($arObject as $arValueObject)
{
$hrefValue = $arValueObject->href;
$arValueObject->href = ‘/bitrix/redirect.php?goto=’ . urlencode($hrefValue);
}
return $html;
}
[/source]
Сам класс можно скачать тут