一个简单的php下载函数

	function downloadpic($url){
		$urls = parse_url($url);
		if(empty($urls['path'])) $urls['path'] = '/';
		$urls['port'] = empty($urls['port'])?'80':$urls['port'];
		$urls['query'] = empty($urls['query'])?'':'?'.$urls['query'];
	
		$fp = fsockopen($urls['host'],$urls['port'], $errno, $errstr, 30);
		if($fp){
			if(!empty($urls['query'])){
				fputs($fp, "GET $urls[path]?$urls[query] HTTP/1.0\r\n");
			}else{
				fputs($fp, "GET $urls[path] HTTP/1.0\r\n");
			}
			fputs($fp, "Host: $urls[host]\r\n");
			fputs($fp, "Accept: */*\r\n");
			fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\r\n");
			fputs($fp, "Pragma: no-cache\r\n");
			fputs($fp, "Cache-Control: no-cache\r\n");
			fputs($fp, "Referer: ".$urls['scheme'].'://'.$urls['host']."\r\n");
			fputs($fp, "Connection: Close\r\n\r\n");
			
			$httpstas = explode(" ", fgets($fp, 128));
			if($httpstas[1] != 200){
				fclose($fp);
				return '';
			}
			//接收信息
			$data = '';
			while(!feof($fp)){
				$data .= fgets($fp,1024);
			}
			$out = explode("\r\n\r\n",$data);
			fclose($fp);
			return $out[1];
		}
	}

posted on 2011-05-26 18:09  dawnruby  阅读(181)  评论(0)    收藏  举报

导航