當您使用file_gets_contents($website)
或cURL加載網站時,它會加載整個網站嗎?我最感興趣的是使用cURL。如何在Ajax網站上使用file_get_contents
我使用它來加載一個網頁,然後使用AJAX獲取一些內容(如價格),並且在獲取價格時遇到了一些問題。
當我使用file_get_contents時,它是否像正常情況下一樣加載瀏覽器加上使用Ajax加載的東西?
當您使用file_gets_contents($website)
或cURL加載網站時,它會加載整個網站嗎?我最感興趣的是使用cURL。如何在Ajax網站上使用file_get_contents
我使用它來加載一個網頁,然後使用AJAX獲取一些內容(如價格),並且在獲取價格時遇到了一些問題。
當我使用file_get_contents時,它是否像正常情況下一樣加載瀏覽器加上使用Ajax加載的東西?
的片段
$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。
所以它不會加載任何Javascript或JQuery在加載整個文檔後加載的東西($(document).ready())'? 它加載網站,就好像JavaScript尚未加載瀏覽器?對? –
是的,沒錯! file_gets_contents()獲取HTTP答覆。由於回覆不會「通過」瀏覽器,因此不會執行JavaScript。 – SteAp
好的..關於cURL的事? –
編號使用file_get_contents()
只會返回頁面內容,它不會在頁面上執行任何JavaScript。這種行爲的類比幾乎等同於瀏覽器中的「查看頁面源代碼」。
如何執行Javascript?我實際上使用cURL來加載網站,但我提到了file_get_contents(),因爲這是最常用的。我編輯了這個問題。 –
@WilliamTheDev你不能。 –
看看[這個問題](http://stackoverflow.com/questions/2699180/execute-javascript-in-php)。從本質上講,您需要以編程方式來模擬瀏覽器環境,該環境理解如何解析和執行JavaScript。 – plasmid87
更好地思考爲什麼你需要它。沒有完美的,100%的無錯解決方案。也許你需要首先加載主頁,然後價格件?這似乎比創建虛擬環境來執行JS更好,更穩定。 –