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

回到顶部