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

下面是脚本文件代码:

<?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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任聪聪

创作不易,你的打赏是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值