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程序就停止了. |
|