Я пытаюсь использовать регулярное выражение для добавления диапазона к первому слову контента для страницы, однако контент содержит HTML, поэтому я стараюсь убедиться, что выбрано только слово. Содержание меняется для каждой страницы.
Текущий скрипт:
preg_match('/(<(.*?)>)*/i',$page_content,$matches);
$stripped = substr($page_content,strlen($matches[0]));
preg_match('/\b[a-z]* \b/i',$stripped,$strippedmatch);
echo substr($page_content, 0, strlen($matches[0])).'<span class="h1">'.$strippedmatch[0].'</span>'.substr($stripped, strlen($strippedmatch[0]));
Однако, если $ page_content
<p><span class="title">This is </span> my title!</p>
Тогда мое регулярное выражение думает, что первое слово - это span, и добавляет теги вокруг него.
Есть ли способ это исправить? (или лучший способ сделать это).