2009-07-29 93 views
5

我使用simple_php_dom和curl通過PHP從網頁獲取一些信息。問題是頁面沒有正確構建,所以DOM對象包含錯誤的信息。如何通過PHP獲取HTML頁面作爲字符串?

如何獲取HTML文件作爲PHP變量中的字符串,以便我可以通過它運行正則表達式?

由於忽略不好的部分,所以不起作用。
simple_html_dom.php有同樣的問題。
wget不起作用,因爲我沒有服務器上的權限。

回答

12

file_get_contents - 整個文件讀入一個串

string file_get_contents ( 
    string $filename [, int $flags= 0 [, resource $context [, int $offset= -1 [, int $maxlen= -1 ]]]] 
) 

從手動:

該功能類似於文件(),不同之處在於file_get_contents()函數返回文件中的一個字符串,從指定的偏移量開始到maxlen字節。失敗時,file_get_contents()將返回FALSE。

file_get_contents()是將文件內容讀入字符串的首選方法。如果您的操作系統支持,它將使用內存映射技術來提高性能。

它同時適用於網頁和文件。您可以使用「http://whatever.com/page.html」作爲$ filename來獲取HTML。

+0

那就是我的建議。 – Christian 2009-07-29 22:47:39

0

我用捲曲來獲取文件到一個字符串(simple_html_dom :: load_file只是包裝file_get_contents),然後使用simple_html_dom加載(從字符串)方法來解析它。這適用於某些URL,但在URL具有參數字符串的情況下會失敗。它正在提取URL,就好像它沒有參數字符串一樣。我用curl設置了一個代理來模擬瀏覽器,但沒有骰子。

對不起,這不是一個真正的答案,但也許使用捲曲將適用於一些人,對於誰打開設置是一個問題。

相關問題