2017-06-21 62 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