fsockopen()函数以Socket方式模拟HTTP协议(GET) by cubeking
转载:http://hi.baidu.com/cubeking/blog/item/1e48e10bca393ea02eddd4ad.html
以下PHP代码将下载 http://zth555.hostinplace.com/music/comic/favorites2/futatsunonegai.mp3 这首MP3.
#Socket模拟HTTP协议传输文件
#Http是应用层协议使用端口80
# $hostname = 'zth555.hostinplace.com' ;
$port = '80' ;
以下PHP代码将下载http://zth555.hostinplace.com/music/comic/favorites2/futatsunonegai.mp3这首MP3.
<? $hostname = 'zth555.hostinplace.com'; $port = '80'; $fp=fsockopen($hostname,$port,$errno,$errstr);
set_socket_blocking($fp,false); if(!$fp){ echo "$errno : $errstr<br/>"; }else { $request_header="GET
/music/comic/favorites2/futatsunonegai.mp3 HTTP/1.1\n"; $request_header.="Host: $hostname\n";
$request_header.="\n";
fputs($fp,$request_header);
$fp2=fopen('futatsunonegai.mp3','w');
while (!feof($fp)) { fputs($fp2,fgets($fp,128));
} fclose($fp2);
fclose($fp); } ?>
注意一下PHP的超时限制.我设置我PHP服务器超时为无限,才能正确下载.否则下载不全PHP程序就停止了.
|
|