PHP curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false)太慢 - php

我使用这种方法来获取facebook api数据。只是一个搜索查询。但我发现使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl时间内(超过10秒钟)会花费更多时间。

还有其他curl方法可以运行得更快吗?

注意:我现在正在本地主机中测试

$url = "https://graph.facebook.com/search?access_token=".$token."&q=dallas&type=post&scope=publish_stream,offline_access,user_status,read_stream";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 2);
//curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__). '/file.crt'); the way as Lumbendil recommend, download a crt file via firefox. still slowly.
$body= curl_exec($ch);
curl_close ($ch);

PS:我不想使用SDK,因为在本地测试中设置SDK失败。尽管我读过很多有关如何在localhost中进行设置的文章。我已将http://127.0.0.1/facebook设置为我的回调URL。但是只是失败了。所以我仍然想要一种简单的卷曲方式。

谢谢。

参考方案

您可以使用.crt文件并对此进行验证,而不是忽略SSL验证as explained here。

要将所有信息放在一个地方:在代码中,应编写以下内容:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/crt/file.crt');

要获得证书,您应该将浏览器转到该页面,然后使用“查看证书”将其导出。请记住,您必须将其导出为X.509证书(PEM)才能起作用。有关如何导出证书的更详细的指南,请访问提供的链接。

cURL-加载具有CloudFlare保护的网站 - php

我有一个网站,我想使用cURL加载。但是,我正在谈论的站点正在使用cloudflare保护。在cURL request =>上,它说“检查您的浏览器,您将在5秒钟内被重定向”,我被重定向到一个不存在的页面,因为我认为我没有通过某些保护测试。我一直在寻找答案很长时间,但我发现只有两个有用的链接:Link 1Link 2但是我仍然无法弄清楚。对我有帮助吗?…

通过API发布时,将应用程序名称添加到Twitter发布 - php

我正在使用Twitter API进行发布。我想知道是否有任何方法可以更改帖子上的应用程序名称。例如,当我发布时显示: 大约1小时前来自网络它应转换为: 从我的应用名称大约1小时前请指导我。 参考方案 是的,您可以更改它。但是,您必须向Twitter提交应用程序才能批准,一旦获得批准,就必须将应用程序名称添加到“ source”参数中。检查Twitter ap…

默认cURL选项值 - php

我今天重构了cURL类,并考虑了查看cURL FLAGS的默认值。谁能告诉我在哪里可以找到或如何输出它们?PS:如果有可能的话。 参考方案 我今天一直在研究相同的问题,并且遇到了这个(相当古老的)帖子。由于它几乎显示在Google的顶部,因此我认为这里是总结研究的地方。简而言之:这是不可能的。似乎大多数cURL选项甚至都没有任何默认值。 For exampl…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…