Увидев, как несколько потоков копируют метод regexp, чтобы найти термин для сопоставления в документе HTML, я использовал PHP-синтаксический анализатор Simple HTML DOM (http://simplehtmldom.sourceforge.net/), чтобы получить фрагменты текста, которые мне нужны, но я хочу знать, является ли мой код оптимальным. Такое ощущение, что я зацикливаюсь слишком много раз. Есть ли способ оптимизировать следующий цикл?
//Get the HTML and look at the text nodes
$html = str_get_html($buffer);
//First we match the <body> tag as we don't want to change the <head> items
foreach($html->find('body') as $body) {
//Then we get the text nodes, rather than any HTML
foreach($body->find('text') as $text) {
//Then we match each term
foreach ($terms as $term) {
//Match to the terms within the text nodes
$text->outertext = str_replace($term, '<span class="highlight">'.$term.'</span>', $text->outertext);
}
}
}
Например, будет ли важно определить, есть ли у меня совпадения, прежде чем я начну цикл?