加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

cURL适用于CLI,但不适用于PHP?

发布时间:2020-12-14 00:35:20 所属栏目:Linux 来源:网络整理
导读:这是我正在使用的代码: curl -k https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg 这很好用(“-k”标志是工作或超时所必需的) 然后我在PHP中使用此代码: $ch = curl_init("https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg");curl
这是我正在使用的代码:

curl -k https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg

这很好用(“-k”标志是工作或超时所必需的)

然后我在PHP中使用此代码:

$ch = curl_init("https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg");
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);

它超时 – 我尝试了很多变化,但结果总是假的.

当我执行phpinfo()时,这是PHP cURL信息:

cURL support enabled
cURL Information 7.38.0
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols dict,file,ftp,ftps,gopher,http,https,imap,imaps,pop3,pop3s,rtsp,smtp,smtps,telnet,tftp
Host x86_64-unknown-linux-gnu
SSL Version OpenSSL/1.0.1e
ZLib Version 1.2.3

任何想法将不胜感激.

UPDATE

以下是curl_getinfo($ch)的信息:

array (
  'url' => 'https://www.ashleydirect.com/graphics/ad_images/T908-6.jpg','content_type' => NULL,'http_code' => 0,'header_size' => 0,'request_size' => 0,'filetime' => -1,'ssl_verify_result' => 1,'redirect_count' => 0,'total_time' => 59.27538100000000298450686386786401271820068359375,'namelookup_time' => 0.00975999999999999957867036215475309290923178195953369140625,'connect_time' => 0.05170500000000000095923269327613525092601776123046875,'pretransfer_time' => 0,'size_upload' => 0,'size_download' => 0,'speed_download' => 0,'speed_upload' => 0,'download_content_length' => -1,'upload_content_length' => -1,'starttransfer_time' => 0,'redirect_time' => 0,'certinfo' => 
  array (
  ),'primary_ip' => '65.207.240.29','primary_port' => 443,'local_ip' => '172.24.32.132','local_port' => 54461,'redirect_url' => '',)

更新2

来自curl_error的回复:

Unknown SSL protocol error in connection to www.ashleydirect.com:443

更新3 – 解决方案

我想清楚地提出我想出的解决方案,感谢@Valery Viktorovsky指出他们只接受TLS 1.0.

解决方案,然后是添加这个:

// Set to TLS 1.0 (CURL_SSLVERSION_TLSv1_0)
curl_setopt($ch,CURLOPT_SSLVERSION,4);

More information here

解决方法

你的PHP代码很好.执行curl_getinfo($ch)和curl_error($ch)aftercurl_exec以查看服务器返回的响应代码.

更新:我测试了ashleydirect.com SSL证书,它只支持TLS 1.0.因此,请确保您的php版本支持TLSv1.0.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读