2011-05-26 243 views
1

我正在使用readfile()来通过服务器从Rapidshare的API下载。这是相关代码:由于SSL导致readfile()失败

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响应。

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

感谢您的帮助!

+5

我不知道我是否应该帮助你Red.Riding.Hood.2011.R5的”下载.XviD-BiDA.part1.rar“ – 2011-05-27 00:00:09

+1

您需要一个支持ssl编译的PHP版本,如错误消息所示。否则使用'curl'而不是'readfile'。这是两回事。 – mario 2011-05-27 00:00:44

+0

我将如何去使用cURL?如果可以的话,我宁愿使用cURL。 Afaik虽然cURL只能将文件下载到文件中,而不是流式传输。 – Josh 2011-05-27 00:01:55

回答

0

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

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

能够在php.ini卷曲和尝试下面的代码:

$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); 
+1

curl_setoption现在是curl_setopt – 2017-06-16 22:31:33

相关问题