В поиске стека переполнения я нашел ответ на свой вопрос, но я не могу понять, как его использовать, если кто-то может дать мне подсказку. Это будет оценено!
Вот моя потребность, яЯ использую WordPress, и я хотел бы поставить автоматический идентификатор для тегов <...>, поэтому я нашел "Марио", которые отвечают на это:
Если у вас есть такой последовательный ввод, то вы можете использоватьрегулярные выражения.В этом случае это и очень приемлемо, и просто:
$html = preg_replace_callback("#<(h[1-6])>(.*?)</\\1>#", "retitle", $html);
function retitle($match) {
list($_unused, $h2, $title) = $match;
$id = strtolower(strtr($title, " .", "--"));
return "<$h2 id='$id'>$title</$h2>"; }
Преобразование идентификатора требует немного больше работы.И чтобы сделать регулярное выражение более надежным, шаблон соответствия внутреннего текста (.*?)
можно записать, например, как ([^<>]*)
.
Автоматический идентификатор тега H2 в строке php
Итак, я попытался применить это к моему сценарию, но это не работает вообще,вот мой код
<?php
$html = get_the_content();
$html = preg_replace_callback("#<(h[1-6])>(.*?)</\\1>#", "retitle", $html);
function retitle($match) {
list($_unused, $h2, $title) = $match;
$id = strtolower(strtr($title, " .", "--"));
return "<$h2 id='$id'>$title</$h2>";
}
if(have_posts()) : while(have_posts()) : the_post(); //Vérifie que le contenu existe
echo $html;
endwhile;
endif;
?>