从网上看看了一些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 "Download >";
$save_path = $argv[2] ? $argv[2] : "./";
$file_name = $filename;
$localfile = $save_path.$file_name;
echo "File path:".$localfile."
";
//检查变量
if (!check_url($url)){
exit("Error: URL ". $url ." invalid. ");
}
if (file_exists($localfile)){
exit("Error: local file ". $localfile ." exists. ");
}
//打开远程文件
$fp = fopen($url, "rb");
if (!$fp){
exit("Error: Download ". $url ." failed. ");
}
//打开本地文件
$sp = fopen($localfile, "wb");
if (!$sp){
exit("Error: Open local file ". $localfile ." failed. ");
}
//下载远程文件
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);
?>