Более быстрый метод для замены определенных ссылок на изображения XPath / Preg_replace

Я написал небольшой кусочек кода, который загружает контент HTML. Обрабатывает каждое изображение и проверяет, есть ли у него полный набор URL.

Если нет, он добавляет это.

В настоящее время я делаю это с XPath.
Но у меня такое ощущение, что процедура сильно загружает процессор.
Поэтому я хотел бы знать, будет ли более быстрый метод для того, что я делаю в настоящее время.

Код, который я написал

        ///######## START A NEW DOM DOCUMENT
$dom            = new DOMDocument;
///######## LOAD THE HTML INTO THE DOM DOCUMENT
$dom->loadHTML($html);
///######## GET ALL IMAGES WITH XPath
$Images         = $dom->getElementsByTagName('img');
///######## SETUP AN EMPTY SOURCE AND TARGET ARRAY
$SourceArray    = $TargetArray = array();

///######## RUN THROUGH ALL SET IMAGE NODES
foreach ($Images as $node) {
///######## GET THE URL ATTRIBUTE
$SetURL = $node->getAttribute('src').PHP_EOL;

///######## IF THE URL DOES NOT START WITH HTTP
if(substr($SetURL, 0, 4) != 'http'){
///######## SET THE URL TO THE SOURCE ARRAY
$SourceArray[] = 'img src="'.$SetURL;
///######## SET THE TARGET URL
$TargetArray[] = 'img src="'.__APPBASE__.'/'.$this->TEMPLATEDIR.'/'.$SetURL;
}
}
///######## REMOVE THE BREAKS FROM BOTH ARRAYS
$SourceArray    = str_replace(PHP_EOL, NULL, $SourceArray);
$TargetArray    = str_replace(PHP_EOL, NULL, $TargetArray);
///######## REPLACE THE HTML TEXT
$html           = str_replace($SourceArray, $TargetArray, $html);

///######## UNSET THE VARIABLES {free up memory}
unset($dom);
unset($SourceArray);
unset($TargetArray);

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]