您的位置:首页 > 编程语言 > PHP开发

PHP批量查询数据库下载远程文件脚本实例

2016-12-28 14:45 691 查看
下面是脚本文件代码:

<?php
//ignore_user_abort(true);//后台执行
set_time_limit(0);
$startTime = '2016-12-25 00:00:00';//开始时间
$endTime   = '2016-12-26 00:00:00';//结束时间
$where = "SELECT 字段 FROM 表名 WHERE 条件 and time >'".$startTime."' and time < '".$endTime."' ORDER BY time desc";
//链接远程数据库
$con = mysql_connect('地址','用户名','密码');
if(!$con) die('Could not connect: ' . mysql_error());
mysql_select_db('数据库',$con);
echo 'sql:'.$where.'<br>';

$arr = getArr($where);
$num = count($arr);

echo 'num:'.$num.'<br>';
dump($arr);
//循环获取图片路径
foreach($arr as $k=>$v){
getLurl($v['图片路径'],$v['用户'],$v['id']);
}
//创建文件目录
function mkFolder($path){
if(!file_exists($path)){
mkdir($path, 0777);
}
}
//获取远程路径
function getLurl($url,$userFileName,$id){
//多图情况下先转换成数组在下载文件
if(strpos($url,',')){
$arr = explode(',',$url);
foreach($arr as $k=>$v){
$name = basename($v);
downImage($v,$userFileName,$id.'_'.$name);
}
}else{
$name = basename($url);
downImage($url,$userFileName,$id.'-'.$name);
}

}
//获取数组
function getArr($where){
//查询数据
$query = mysql_query($where);
//数组输出
$result = array();
while ($res = mysql_fetch_assoc($query)) {
$result[] = $res;
}
return $result;
}

//打印函数
function dump($str){
echo '<pre>';
var_dump($str);
echo '</pre>';
}

//下载远程图片
function downImage($url,$userFileName="",$filename='') {
$url='远程路径'.$url;
//先创建文件夹
if($userFileName){
$path = '../Download'.'/'.$userFileName;
}else{
$path = '../Download';
}
mkFolder($path);
if($url == '') {
return false; //如果 $url 为空则返回 false;
}
$ext_name = strrchr($url, '.'); //获取图片的扩展名
if($ext_name == '.php') {
return false; //格式不在允许的范围
}
if($filename == '') {
$filename = time().$ext_name; //以时间戳另起名
}
//开始捕获
ob_start();
readfile($url);
$img_data = ob_get_contents();
ob_end_clean();
$local_file = fopen($path.'/'.$filename , 'a');
fwrite($local_file, $img_data);
fclose($local_file);
return $filename;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 脚本 实例 select