Есть скрипт. На вход получает html файл. Задача скрипта каждому задать data-name="tag-НОМЕР", где НОМЕР - номер тега от начала страницы. Пример body такого html файла:
<p class="about">Текст</p>
<p>Другой текст</p>
<a href="">Ссылка</a>
<p>Ещё текст</p>
После выполнения скрипта должно получиться так:
<p data-name="tag-1" class="about">Текст</p>
<p data-name="tag-2">Другой текст</p>
<a href="">Ссылка</a>
<p data-name="tag-3">Ещё текст</p>
Для реализации поставленной задачи я набросал такой код:
<?php
$html = file_get_contents('index.html');
$bodytag = $html;
// подсчитываем количество таких тегов
$count_p_tag = substr_count($html, "<p");
for($i=1; $i<$count_p_tag+1; $i++) {
$replace_counter = $i;
$bodytag = preg_replace ('/<p/ie',"\$replace_counter--==1?\"<p data-namel=\\\"p-tag-$replace_counter\\\"\":'\\0'",$bodytag);
}
// записываем получившийся результат
$fp = fopen("index.html", "w+");
$mytext = "$bodytag";
$test = fwrite($fp, $mytext);
fclose($fp);
?>
Подскажите пожалуйста, как можно его ускорить? Если таких тегов 10 000 - 20 000, то скрипт выполняет свою задачу неприемлемо долго (более 30 секунд).
Заранее спасибо