Php cURL调用不工作,无可见错误(WampServer 3)

Php cURL调用不工作,无可见错误(WampServer 3),php,curl,wampserver,Php,Curl,Wampserver,我使用curl和riotapi。在我的实时服务器上一切正常,但在本地服务器上不正常。curl扩展是在WampServer中启用的,我没有收到任何错误消息,它只是一个空白页 这是我的代码,即使它实际上并不相关 <?php $private_key = "XXX"; function summoner_name($summoner, $server, $private_key) { $summoner_encoded = rawurlencode($summo

我使用curl和riotapi。在我的实时服务器上一切正常,但在本地服务器上不正常。curl扩展是在WampServer中启用的,我没有收到任何错误消息,它只是一个空白页

这是我的代码,即使它实际上并不相关

<?php 
    $private_key = "XXX";
    function summoner_name($summoner, $server, $private_key) {
        $summoner_encoded = rawurlencode($summoner);
        $summoner_lower = strtolower($summoner_encoded);
        $curl_url = 'https://' . $server . '.api.pvp.net/api/lol/' . $server . '/v1.4/summoner/by-name/' . $summoner . '?api_key='.$private_key;
        $curl = curl_init($curl_url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        return $result;
    }

    function summoner_info_array_name($summoner) {
        $summoner_lower = mb_strtolower($summoner, 'UTF-8');
        $summoner_nospaces = str_replace(' ', '', $summoner_lower);
        return $summoner_nospaces;
    }

    $summoner = "Test";
    $server = "euw";
    $summoner_info = summoner_name($summoner, $server, $private_key);
    $summoner_info_array = json_decode($summoner_info, true);
    $summoner_info_array_name = summoner_info_array_name($summoner);
    $summoner_id = $summoner_info_array[$summoner_info_array_name]['id'];
    $summoner_name_display = $summoner_info_array[$summoner_info_array_name]['name'];
    $summoner_icon = $summoner_info_array[$summoner_info_array_name]['profileIconId'];
    echo '<img src="http://ddragon.leagueoflegends.com/cdn/6.9.1/img/profileicon/'.$summoner_icon.'.png" /><br/><hr>'.$summoner_name_display;
?>   

这是我的卷曲扩展的
phpinfo()

提前谢谢! .

您可以随时调用和函数来检查最新curl查询中的问题

像这样:

$result = curl_exec($curl);
if ($result === false) {
    echo "Something is wrong here!\n".var_export(curl_error($curl), true)
         . "\nQuery:".var_export(curl_getinfo($curl), true); exit();
}
您可以随时调用和函数来检查最新curl查询中的问题

像这样:

$result = curl_exec($curl);
if ($result === false) {
    echo "Something is wrong here!\n".var_export(curl_error($curl), true)
         . "\nQuery:".var_export(curl_getinfo($curl), true); exit();
}
因此,首先,正如我们在评论中所指出的,解决这些错误的第一步是查看错误消息实际上是什么。我会给你这个信息

具体来说,您将收到一个SSL/TLS错误:

如果您不关心安全性(我永远不建议生产应用程序使用此选项),则可以禁用失败的SSL验证步骤:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
更好的方法是通过设置
CURLOPT\u CAINFO
来修复CA证书信息。很好地解释了这一点

编辑:OP发现,有更多关于让cURL识别正确CA证书的细节。

因此,首先,正如我们在评论中所指出的,解决这些错误的第一步是查看错误消息的实际内容。我会给你这个信息

具体来说,您将收到一个SSL/TLS错误:

如果您不关心安全性(我永远不建议生产应用程序使用此选项),则可以禁用失败的SSL验证步骤:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
更好的方法是通过设置
CURLOPT\u CAINFO
来修复CA证书信息。很好地解释了这一点


编辑:OP发现,有更多关于让cURL识别正确CA证书的细节。

什么是
var\u dump($result)
返回$result之前的行上看起来像?“\I:\www\riotu api\u test\test\u local.php:24:boolean false”:/谢谢,好的,现在替换
var\u dump(…)带有
变量转储(curl\u error($curl))好的,这是有道理的。下面是错误代码:“I:\www\riotu api\u test\test\u local.php:23:string‘SSL证书问题:无法获取本地颁发者证书’(长度=63)’什么是
var\u转储($result)
返回$result之前的行上看起来像?“\I:\www\riotu api\u test\test\u local.php:24:boolean false”:/谢谢,好的,现在替换
var\u dump(…)带有
变量转储(curl\u error($curl))好的,这是有道理的。下面是错误代码:“I:\www\riotu api\u test\test\u local.php:23:string‘SSL证书问题:无法获取本地颁发者证书’(长度=63)”感谢您提供的链接,即使我只在本地服务器上获得该问题,我也希望以正确的方式解决它。在Atm上,我收到以下错误消息:“curl\u setopt($curl,CURLOPT\u CAINFO,getcwd()”/riot\u api.cer”);“I:\www\riot\u api\u test\test\u local.php:32:string”错误设置证书验证位置:CAfile:I:\www\riot\u api\u test/riot\u api.cer CApath:none”(长度=102)”。我核实了我的证书是否真的在这个地方,一切正常。我应该用CApath定义路径吗?不管怎样,我还是要试试!我最终解决了这个问题,并按照本文中描述的步骤进行了操作:。谢谢你的帮助!太棒了,没问题,很乐意帮忙!感谢您的链接,即使我只在本地服务器上得到这个问题,我也希望以正确的方式解决它。在Atm上,我收到以下错误消息:“curl\u setopt($curl,CURLOPT\u CAINFO,getcwd()”/riot\u api.cer”);“I:\www\riot\u api\u test\test\u local.php:32:string”错误设置证书验证位置:CAfile:I:\www\riot\u api\u test/riot\u api.cer CApath:none”(长度=102)”。我核实了我的证书是否真的在这个地方,一切正常。我应该用CApath定义路径吗?不管怎样,我还是要试试!我最终解决了这个问题,并按照本文中描述的步骤进行了操作:。谢谢你的帮助!太棒了,没问题,很乐意帮忙!