Разобрать весь HTML-документ и заменить его отдельные части автоматически PHP - PullRequest
1 голос
/ 03 февраля 2010

Привет,

Iv'e сделал быстрый поиск по предыдущим вопросам, но не нашел адекватного ответа на мой вопрос.

Я создал функцию, которая находит слова в библиотеке массивов и заменяет их ссылками на описание слова.

Пример:

$words = array("ANTIM","APDIV","APVEG","ARCHE","ARFEU","ARMUR",
"ARSUP","ARTHE","ARTIL","ASSOM","ATTSU","BANQU","BARDE","BRICO",
"CAMOU","CHANC","CHAOM");

Когда я вызываю свою функцию, replace_text ($ someString). Я ищу эти слова в тексте. Хотя эти слова есть на нескольких страницах моего сайта и на все есть ссылки на соответствующие описания. Я сделал эту функцию, чтобы автоматизировать процесс, а не писать ссылки вручную.

Поэтому, когда я звоню:

replace_text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ultrices congue condimentum. Integer tempor aliquam ARFEU nisi at adipiscing. Vivamus ornare consequat metus. Nulla mollis lacus sit amet dolor rutrum sollicitudin. Maecenas sit amet nibh ut turpis bibendum rutrum et a tellus. Fusce a tortor a lacus feugiat gravida. Suspendisse elementum hendrerit urna ut viverra. Pellentesque ARCHE auctor, metus vitae lobortis vestibulum, justo ligula ultrices magna, vitae blandit mauris sapien eu velit. Nullam dapibus tristique orci, ac ullamcorper lectus venenatis ARTIL non. Nulla laoreet laoreet pretium.")

Это будет заменено на:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ultrices congue condimentum. Integer tempor aliquam <a href="somelink">ARFEU</a nisi at adipiscing. Vivamus ornare consequat metus. Nulla mollis lacus sit amet dolor rutrum sollicitudin. Maecenas sit amet nibh ut turpis bibendum rutrum et a tellus. Fusce a tortor a lacus feugiat gravida. Suspendisse elementum hendrerit urna ut viverra. Pellentesque <a href="somelink">ARCHE</a auctor, metus vitae lobortis vestibulum, justo ligula ultrices magna, vitae blandit mauris sapien eu velit. Nullam dapibus tristique orci, ac ullamcorper lectus venenatis <a href="somelink">ARTIL</a> non. Nulla laoreet laoreet pretium."

(Слова из массива были заменены на якоря.)

Наконец, я хочу, чтобы моя функция вызывалась, но путем автоматического поиска по всем моим страницам (html-код) при загрузке. Я думаю, что это можно сделать с помощью части PHP domDocument, но я к этому не привык, не могли бы вы мне помочь?

1 Ответ

3 голосов
/ 03 февраля 2010

Звучит так, как вам нужно ob_start () .

Вы можете создать свою функцию, скажем,

 function call_back_addLinks($buffer){
    //do your magic and replace
    //words with links in $buffer
    //then return the new String
 }

Тогда:

 ob_start("call_back_addLinks");

Тогда ваш обычный PHP-код генерирует нормальный контент. То есть вся ваша страница здесь.

Тогда:

 ob_end_flush();

Ссылка имеет простой пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...