Измените определенные слова на ссылки в HTML с помощью PHP

Возможный дубликат:
Как заменить текстовые URL-адреса и исключить URL-адреса в тегах HTML?

Учитывая некоторую разметку HTML, я хочу добавить ссылки вокруг определенных слов в тексте. Но я не хочу влиять на атрибуты или невидимые слова. Я также не хочу, чтобы в итоге слова с двойными ссылками (например, <a href="#">I went to <a href="#">China</a></a>.

Образец

<h2>We are speaking English</h2>
<p>When speaking to somebody you can use our handy <a href="/speaking-guide.html">
    speaking guide</a>.</p>

Идеальный результат при "говорящем" соединении

<h2>We are <a>speaking</a> English</h2>
<p>When <a>speaking</a> to somebody you can use our handy <a href="/speaking-guide.html">
    speaking guide</a>.</p>

Обратите внимание, что href существующей ссылки не был изменен, равно как и слово, говорящее в ранее существовавшей ссылке.

Каков правильный способ сделать это? Если не использовать регулярное выражение, то с чем?


person Moyersy    schedule 02.02.2011    source источник
comment
HTML DOM — правильный путь. Сейчас мне просто лень писать полный код.   -  person shamittomar    schedule 02.02.2011
comment
Я не понимаю, как DOM может быть полезен, если он не использует Javascript.   -  person Merijn    schedule 02.02.2011
comment
@Merijn: вы можете анализировать HTML DOM с помощью PHP.   -  person Shikiryu    schedule 02.02.2011
comment
Есть Simple HTML Dom — я с ним знаком, но не понимаю, как его применять в данном контексте.   -  person Moyersy    schedule 02.02.2011
comment
Вы использовали PHP DomDocument? Это путь.   -  person Jake N    schedule 02.02.2011
comment
В этом вопросе есть много флагов комментариев: не злоупотребляйте системой.   -  person SilentGhost    schedule 02.02.2011