2010-02-03 35 views
1

問候,全解析HTML文檔並更換自動的特定部分PHP

Iv'e做在前面的問題,快速搜索,但沒有找到我的問題的充分答案。

我已經創建了一個函數,用於查找數組庫中的單詞並將這些單詞替換爲單詞描述的鏈接。

例子:

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

當我打電話給我的功能,REPLACE_TEXT($ someString)。我在文中搜索這些詞。雖然這些詞彙在我的網站的幾個頁面中,並且都需要鏈接到相應的描述。我爲了自動執行該過程而沒有手動編寫鏈接。

所以,當我打電話:

"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." 

(從陣列中發現的話被替換爲錨。)

最後,我想:

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.") 

這將被替換我的函數被調用,但通過在我的整個頁面(HTML代碼)自動加載時搜索。我認爲這可以通過PHP的domDocument部分完成,但我不習慣它,請你指導我嗎?

+0

裝載時你的意思是什麼?即使頁面沒有調用它,你想讓函數運行嗎? – Anthony

+0

也許我不清楚,這是我想要存檔的內容: 1-在加載頁面時,在整個html文檔中替換文本。 的困難我目前遇到的問題: 1 - 如何獲取當前頁面的全部內容 2,如何分析,通過我簡單的函數,使用str_replace()函數 – wiooz

+0

你會在哪裏放置功能,如果你想這個內容當前頁面?整個內容不會包含函數本身嗎?您是否要將文檔請求重定向到另一個分析請求的文檔並輸出的腳本?我們需要知道你的HTTP服務器來提供建議。 – Anthony

回答

3

聽起來像你需要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(); 

連桿有一個簡單的例子。

+0

我會嘗試這種方法...雖然我覺得我找到了一個簡單的方法。我可以使用以下內容: $ content = file_get_contents('。/my-content-page.html',FILE_USE_INCLUDE_PATH); echo my_replace_text_function($ content); 這似乎是正常工作...生病測試並通知你! – wiooz