readfile()因SSL而失败

时间:2011-05-26 23:50:50

标签: php ssl curl readfile

我正在使用readfile()通过我的服务器从Rapidshare的API提供下载。这是相关的代码:

readfile("http://rs$server_id$short_host.rapidshare.com/cgi-bin/rsapi.cgi?sub=download&fileid=$file_id&filename=$file_name&login={$account['username']}&password={$account['password']}");

但是当我请求页面时,我收到了这个错误:

Warning: readfile(http://rs869l34.rapidshare.com/cgi-bin/rsapi.cgi?sub=download&fileid=3457766962&filename=some_file.rar&login=mylogin&password=mypassword) [function.readfile]: failed to open stream: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? in C:\xampp\htdocs\dl\downloaders\rapidshare_com.php on line 25

根据Rapidshare API,没有办法阻止它返回SSL响应。

我是否需要配置一些特殊的包装来处理这个或什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

libCurl用于从远程服务器下载文件,如readfile(http://...。)。

虽然它可以处理更精细的细节,如cookie,post和ssl证书。在http://cn.php.net/manual/en/book.curl.php

了解更多信息

在php.ini中启用curl并尝试以下代码:

$ch=curl_init("http://rs$server_id$short_host.rapidshare.com/cgi-bin/rsapi.cgi?sub=download&fileid=$file_id&filename=$file_name&login={$account['username']}&password={$account['password']}");
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); // follow http redirect
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); //temporary ignore certificate error for easier testing
$data=$curl_exec($ch);
相关问题