我已经读过CURL比File Get Contents快得多,而且内存消耗更少。所以,我会选择CURL。我阅读了一些文章,以找到有关它的信息以及如何正确有效地使用它。
问题是我找到了许多使用CURL的方法,我在下面发布了3个版本。
我的问题是哪一个最好用?
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
$content = curl_exec($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$cache = curl_exec($ch);
curl_close($ch);
$ch = curl_init("");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close ($ch);
答案 0 :(得分:2)
这一切都取决于你想要的选项。大多数cURL的选项都有一些默认值,如果您不手动设置选项,将会设置默认值。
例如:CURLOPT_RETURNTRANSFER
默认为FALSE(因此在代码中将其设置为FALSE将是多余的)。
将参数传递给curl_int
只是CURLOPT_URL
的快捷方式。其他选项都取决于你想要做什么。
以下是所有cURL选项的列表:http://php.net/manual/en/function.curl-setopt.php
选择您想要的选项,排除您不想要的选项。没有“正确”的方式,只是按照你想要的方式工作。
答案 1 :(得分:1)
就像问,
我看到人们编写PHP的方式很多,但哪一个是正确的?
这个问题没有正确的答案,因为每个人都会对各方面都有自己的看法。
所以,我建议您阅读CURL上的PHP.net手册,并根据您的编码风格,要求和构造选择正确的方法。
答案 2 :(得分:0)
1是SSL(https://或ftps://)
2我认为是一个普通的旧ftp://或http:// url
3我不确定它是什么。看起来像没有SSL的通用URL。
您是否检查了示例中的注释并阅读了文档以了解函数的确切功能或代码的作用?你可以给curl_init提供一个URL字符串。
获取包含备注的.chm文档。它会帮助很多,加快你的研究。
看起来你需要输入一些执行此操作的代码:
<?php
function getfile($url) {
$result="";
$protocol=substr($url,0,strstr($url,":"))
if ("https"==$protocol || "ftps"==$protocol) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
$content = curl_exec($ch);
} else {
//it's http or ftp
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close ($ch);
}
return $result;
}
?>