从网上看看了一些php下载文件的资料,改了改,写了这么个函数.
<?php $url = "下载文件的地址"; $sgff = "要保存文件的本地目录"; $filename = "要保存为什么样的文件名"; $name= array_pop(explode(".", $url)); //获取后缀名' $filename = $filename.".".$name; //文件名后加入后缀' function check_url($url){ return preg_match("/^(http|ftp)(://)([a-zA-Z0-9-_]+[./]+[w-_/]+.*)+$/i", $url); } function down($url,$sgff,$filename){ error_reporting(0); set_time_limit(0); $argv[1] = $url; $argv[2] = $sgff; //无参数则给出提示 if (empty($argv[1])){ echo "Usage: ". $argv[1] ." URL [Destination] "; exit(); } //设置获取基本变量 $url = $argv[1]; echo "<b>Download >"; $save_path = $argv[2] ? $argv[2] : "./"; $file_name = $filename; $localfile = $save_path.$file_name; echo "<b>File path:</b>".$localfile."<br>"; //检查变量 if (!check_url($url)){ exit("<b>Error: URL </b>". $url ." <b>invalid.</b> "); } if (file_exists($localfile)){ exit("<b>Error: local file </b>". $localfile ." <b>exists.</b> "); } //打开远程文件 $fp = fopen($url, "rb"); if (!$fp){ exit("<b>Error: Download </b>". $url ." <b>failed.</b> "); } //打开本地文件 $sp = fopen($localfile, "wb"); if (!$sp){ exit("<b>Error: Open local file </b>". $localfile ." <b>failed.</b> "); } //下载远程文件 echo "Downloading, please waiting... "; while (!feof($fp)){ $tmpfile .= fread($fp, 512); } //保存文件到本地 fwrite($sp, $tmpfile); fclose($fp); fclose($sp); echo "Download file ". $file_name ." succeed! "; } down($url,$sgff,$filename); ?>