Доброго времени суток уважаемые форумчане!Прошу помочь с оптимизацией процесса замены во всех ссылках href содержимого.
Задачи следующие:
1) Заменить все "внешние" ссылки в HTML документе (те что начинаются с 'http:')
2) Заменить все "../../" на "/pathone/pathtwo/";
Написал код, код рабочий, но если попадается HTML документ в котором несколько тысяч ссылок, сервер мягко выражаясь начинает кашлять :)
Мысли, ограничить список полученный из preg_match_all, только теми ссылками которые начинаются на 'http:' или '../../' или '../'
Попытки допилить регулярку до данного условия, не увенчались успехом, в чем и прошу помочь.
Заранее благодарен
[php]
$matches = '';
$pattern = '/<a[^>]*href=\"?([^\s\">]+?)\"?[^>]*>/ismU';
$retval = preg_match_all($pattern, $content, $matches);
if (is_array($matches[1]) ) {
foreach ($matches[1] as $href) {
$content = str_replace("../../", "/pathone/pathtwo/", $content);
if ( strpos($href, 'http://')) {
$content = str_replace($href, '#', $content);
}
}
}
[/php]