gpt4 book ai didi

php: 使用 cURL 获取 html 源代码

转载 作者:IT王子 更新时间:2023-10-28 23:56:50 27 4
gpt4 key购买 nike

如何在不使用 file_get_contents() 的情况下获取 http://www.example-webpage.com/file.html 的 html 源代码?

我需要知道这一点,因为在某些网络主机上 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 地址,然后手动指定 header 。然而,这会使 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 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com