我正在使用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响应。
我是否需要配置一些特殊的包装来处理这个或什么?
感谢您的帮助!
答案 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);