Что может быть лучшим способом пометить некоторые ключевые слова в HTML-код.
Например, у меня есть этот HTML-код:
$text = '
<h1>Lorem Ipsum</h1>
<p>Lorem ipsum dolor sit āmet, consetetur sadipscing elitr, sed diam nonumy<br>
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
<p><img src="test.jpg" alt="Lorem Ipsum">
<p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,<br>
one, nò sea takimata 1 sanctus est <a href="#" title="Lorem Ipsum">Lorem ipsum</a> dolor sit amet. Lörem ipsum dolor sit amet,<br>
consetetur sadipscing elitr, sed diam lorem ipsum nonumy eirmod tempor invidunt ut labore et<br>
dolore magna aliquyam erat, sed diam voluptua.
</p>
';
И я хотел бы выделить слово «Lorem Ipsum» следующим образом: <span class="tooltip">Lorem Ipsum</span>
Поскольку ключевые слова происходят из базы данных, может случиться так, что определенные слова встречаются только один раз и, следовательно, дважды:
$keywords = ['Lorem Ipsum', 'Lorem']
В этом случае должен быть только один маркер. Потому что я не хочу такой код:
<span class="tooltip"><span class="tooltip">Lorem</span> Ipsum</span>
Также все атрибуты тегов, такие как title
и alt
, следует игнорировать. То же самое должно относиться к ссылкам, потому что я не хочу двойную функцию, такую как наведение и нажатие.
Таким образом, отмеченный результат должен выглядеть следующим образом:
$text = '
<h1><span class="tooltip">Lorem Ipsum</span></h1>
<p><span class="tooltip">Lorem ipsum</span> dolor sit āmet, consetetur sadipscing elitr, sed diam nonumy<br>
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
</p>
<p><img src="test.jpg" alt="Lorem Ipsum">
<p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,<br>
one, nò sea takimata 1 sanctus est <a href="#" title="Lorem Ipsum">Lorem ipsum</a> dolor sit amet. Lörem ipsum dolor sit amet,<br>
consetetur sadipscing elitr, sed diam <span class="tooltip">lorem ipsum</span> nonumy eirmod tempor invidunt ut labore et<br>
dolore magna aliquyam erat, sed diam voluptua.
</p>
';
Как видите, ключевое слово Lorem Ipsum
также должно соответствовать lorem ipsum
в нижнем регистре.
Я хотел бы знать, каков наиболее перспективный способ решения этой проблемы. PHP и Javascript будет возможно. Может ли кто-нибудь помочь мне с подходом? Кому-нибудь приходилось решать эту проблему?