2017-06-21 65 views
-1

我想在我自己的網站上獲取一個URL的HTML。 該網站使用laravel 5.4構建。從(自己的網站的)URL獲取HTML內容

我正在嘗試獲取端點的HTML內容,因此我可以將它作爲純文本存儲在數據庫中。

但由於某些原因,我不斷獲得連續加載,即使我在本地主機上運行。

這就是我根據一些問題(Can't seem to get a web page's contents via cURL - user agent and HTTP headers both set?)我在這裏看到的堆棧溢出的嘗試:

$url = url("template/1/11"); // http://localhost:8000/template/1/11 
$html = file_get_contents($url); 

$url = url("template/1/11"); // http://localhost:8000/template/1/11 
$c = curl_init($url); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
//curl_setopt(... other options you want...) 

$html = curl_exec($c); 

if (curl_error($c)) 
    die(curl_error($c)); 

// Get the status code 
$status = curl_getinfo($c, CURLINFO_HTTP_CODE); 

curl_close($c); 

是否有一個原因,我越來越這種行爲? 請幫助我只需要該網址的HTML內容

+0

什麼是PHP錯誤日誌? – mkaatman

+0

@mkaatman php不記錄任何有關它的錯誤 –

回答

2

您必須在URL中指定文件的擴展名。

如果你的文件名爲index.html,是一個文件夾裏面叫template,這是不正確的使用網址爲template/index,相反,你必須將其更改爲template/index.html

編輯:

我誤解了問題的一部分。顯然file_get_contents()不適用於Laravel路線,我建議您參考this answer

從鏈接:

$html = View::make($url)->render(); 

你可能有,如果它沒有指向正確的路線調整的URL。

+0

我的網址都沒有以'.php'或'.html'結尾。我不是指向一個文件,而是一個PHP laravel路由,當瀏覽器訪問時,顯示一個HTML頁面 –

+0

@RaymondAtivie更新了我的答案。 – Andrey

+0

這對我來說是正常的。並提示,我不得不調整我的'$ url'指向視圖,並傳遞給我的數據'$ html = View :: make(「template.page」,$ data) - > render()' –

0

您正在嘗試訪問laravel路由,這很好,但您的方式PHP將解釋爲本地文件名,路由將不會處理。您需要使用URL的完全限定的域名和路徑。

+0

這是完整的域名路徑。 $ url等於'「// http:// localhost:8000/template/1/11」'我更新了這個問題以反映這個問題 –

+0

你需要從字面上將它設置爲你的URL:'$ url = url(「http: // localhost:8000/template/1/11「);' – mkaatman

+0

如果你看看你的php錯誤日誌,它會告訴你路徑不存在,因爲它正在尋找public/template/1/11這不是一份文件。這是一條laravel路由,因此您需要使用前端的FQDN和端口來運行它。 – mkaatman