Эта тема на forum.dklab.ru


sv: Оптимизация регулярного выражения
Доброго времени суток уважаемые форумчане!

Прошу помочь с оптимизацией процесса замены во всех ссылках href содержимого.

Задачи следующие:

1) Заменить все "внешние" ссылки в HTML документе (те что начинаются с 'http:')
2) Заменить все "../../" на "/pathone/pathtwo/";

Написал код, код рабочий, но если попадается HTML документ в котором несколько тысяч ссылок, сервер мягко выражаясь начинает кашлять :)


Мысли, ограничить список полученный из preg_match_all, только теми ссылками которые начинаются на 'http:' или '../../' или '../'
Попытки допилить регулярку до данного условия, не увенчались успехом, в чем и прошу помочь.

Заранее благодарен


$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);
}

}

}

sv:
sv
ойй как же сложно то)

Эта тема на forum.dklab.ru