/** * download files from remote site * * @param remote url $url * @param url post data $params * @param local file name $localfile * @return boolean */ function download_files($url,$params,$localfile){ //parse url $arr_url=parse_url($url); $arr_url['port']= $arr_url['port']?$arr_url['port']:80; $arr_url['query']= $arr_url['query']?"?".$arr_url['query']:''; //parse params $url_param=array(); foreach ((array)$params as $k=>$v) { $url_param[]= "$k=".urlencode($v); } $post_data=implode("&",$url_param); //echo $url."?".$post_data;exit; $fp = fsockopen($arr_url['host'],$arr_url['port'],$errno,$errstr,60); if(!$fp)return false; //get contents with http post $header = "POST {$arr_url['path']}{$arr_url['query']} HTTP/1.1/r/n"; $header .= "Host:{$arr_url['host']}/r/n"; $header .= "Content-Length: ".strlen($post_data)."/r/n"; $header .= "Content-Type: application/x-www-form-urlencoded/r/n"; $header .= "Connection: Close/r/n/r/n"; $header .= $post_data."/r/n"; //must be last fwrite($fp,$header); if (file_exists($localfile)) { chmod($localfile, 0777); } // add write permission if (($wh = fopen($localfile, 'wb')) === FALSE) { return false; } while (!feof($fp)) { $return.=fgets($fp); } $return=explode("/r/n/r/n",$return);//delete header fwrite($wh,$return[count($return)-1]); fclose($fp); fclose($wh); return true; } 参考:http://cn.php.net/manual/en/function.file-get-contents.php php [spat] hm2k.org 的回复