2012-12-20 43 views
4

當您使用file_gets_contents($website)cURL加載網站時,它會加載整個網站嗎?我最感興趣的是使用cURL如何在Ajax網站上使用file_get_contents

我使用它來加載一個網頁,然後使用AJAX獲取一些內容(如價格),並且在獲取價格時遇到了一些問題。

當我使用file_get_contents時,它是否像正常情況下一樣加載瀏覽器加上使用Ajax加載的東西?

+0

更好地思考爲什麼你需要它。沒有完美的,100%的無錯解決方案。也許你需要首先加載主頁,然後價格件?這似乎比創建虛擬環境來執行JS更好,更穩定。 –

回答

0

的片段

$website = 'http://stackoverflow.com/'; 
file_gets_contents($website) 

負載的HTTP請求的結果,沒有別的。因此,該調用加載由URL http://stackoverflow.com/返回的html頁面的源。

特別是,file_gets_contents()不通過http://stackoverflow.com/指向的頁面加載引用的東西。

進行評價,採用PHP

如果JavaScript代碼,你想評估使用PHP腳本的HTML代碼中的JavaScript,你可能希望使用的V8 JavaScript engine,這需要被編譯到PHP二進制:

查找H的示例。通過use the V8 JavaScript engine here

+0

所以它不會加載任何Javascript或JQuery在加載整個文檔後加載的東西($(document).ready())'? 它加載網站,就好像JavaScript尚未加載瀏覽器?對? –

+1

是的,沒錯! file_gets_contents()獲取HTTP答覆。由於回覆不會「通過」瀏覽器,因此不會執行JavaScript。 – SteAp

+0

好的..關於cURL的事? –

4

編號使用file_get_contents()只會返回頁面內容,它不會在頁面上執行任何JavaScript。這種行爲的類比幾乎等同於瀏覽器中的「查看頁面源代碼」。

+0

如何執行Javascript?我實際上使用cURL來加載網站,但我提到了file_get_contents(),因爲這是最常用的。我編輯了這個問題。 –

+0

@WilliamTheDev你不能。 –

+0

看看[這個問題](http://stackoverflow.com/questions/2699180/execute-javascript-in-php)。從本質上講,您需要以編程方式來模擬瀏覽器環境,該環境理解如何解析和執行JavaScript。 – plasmid87

相關問題