fsockopen()函数以Socket方式模拟HTTP协议(GET) by cubeking
以下PHP代码将下载 http://zth655.hostinplace.com/music/comic/favorites2/futatsunonegai.mp3 这首MP3. #Socket模拟HTTP协议传输文件 #Http是应用层协议使用端口80 # $hostname = 'zth655.hostinplace.com' ; $port = '80' ; 以下PHP代码将下载http://zth655.hostinplace.com/music/comic/favorites2/futatsunonegai.mp3这首MP3.# Socket 模拟HTTP协议传输文件# Http是应用层协议使用端口80# $hostname = 'zth655.hostinplace.com';$port = '80';# 建立连接$fp=fsockopen($hostname,$port,$errno,$errstr);set_socket_blocking($fp,false);if(!$fp){ echo "$errno : $errstr";}else { # 发送一个HTTP请求信息头 $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程序就停止了. |