php:使用 cURL 获取 html 源代码
如何在不使用的情况下获取的 html 源代码?http://www.example-webpage.com/file.html
file_get_contents()
我需要知道这一点,因为在某些虚拟主机上被禁用,因此您无法使用.是否可以使用 cURL 获取 html 文件的源代码(如果启用了 cURL 支持)?如果是这样,如何?谢谢。allow_url_fopen
file_get_contents()
如何在不使用的情况下获取的 html 源代码?http://www.example-webpage.com/file.html
file_get_contents()
我需要知道这一点,因为在某些虚拟主机上被禁用,因此您无法使用.是否可以使用 cURL 获取 html 文件的源代码(如果启用了 cURL 支持)?如果是这样,如何?谢谢。allow_url_fopen
file_get_contents()
请尝试以下操作:
$ch = curl_init("http://www.example-webpage.com/file.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
我只推荐这个小文件。大文件作为一个整体读取,可能会产生内存错误。
编辑:在评论中进行了一些讨论后,我们发现问题是服务器无法解析主机名,并且该页面另外是HTTPS资源,因此出现了您的临时解决方案(直到您的服务器管理员修复名称解析)。
我所做的只是ping graph.facebook.com 以查看IP地址,将主机名替换为IP地址,而是手动指定标头。但是,这会导致SSL证书无效,因此我们必须禁止对等验证。
//$url = "https://graph.facebook.com/19165649929?fields=name";
$url = "https://66.220.146.224/19165649929?fields=name";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: graph.facebook.com'));
$output = curl_exec($ch);
curl_close($ch);
请记住,IP 地址可能会更改,这是一个错误源。您还应该使用 执行一些错误处理。curl_error();
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
资料来源:http://www.christianschenk.org/blog/php-curl-allow-url-fopen/