php:使用cURL获取html源代码
如何http://www.example-
webpage.com/file.html不使用来获取html源代码file_get_contents()
?
我需要知道这一点,因为在某些虚拟主机上allow_url_fopen
已禁用,因此您不能使用file_get_contents()
。是否可以使用cURL获取html文件的源(如果启用了cURL支持)?如果是这样,怎么办?谢谢。
回答:
请尝试以下操作:
$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()进行一些错误处理;
以上是 php:使用cURL获取html源代码 的全部内容, 来源链接: utcz.com/qa/425706.html