账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请大佬帮忙看看删除网站冗余图片的代码
    33
    0

    代码实现的功能是查询上传目录下的图片在数据库中如果没有就删除,我写的代码如下,在本地测试时图片比较少可以正常执行,上传到服务器上,因为服务器的图片比较多,数据库也比较大,执行时一直显示“正在等待www.abc.com响应”。请问各位老大怎样修改代码能用在多图片大数据库中?

    <?php
    set_time_limit (0);
    header("Content-type: text/html; charset=utf-8");
    $_config = array();//
    // ----------------------------  CONFIG DB  ----------------------------- //
    $_config['dbhost'] = '127.0.0.1';
    $_config['dbuser'] = 'root';
    $_config['dbpw'] = 'root';
    $_config['dbname'] = 'dbname';
    $_config['table'] = 'pic';//表名
    $_config['url'] = 'pic_url';//字段名
    
    $link = mysqli_connect($_config['dbhost'], $_config['dbuser'], $_config['dbpw']);
    if (!$link){
        exit('数据库链接失败!');
    }
    mysqli_set_charset($link, 'utf8');
    mysqli_select_db($link, $_config['dbname']);
    
    //批量删除冗余图片
    $arr=glob('upload/pic/*/*.{jpg,png,gif,jpeg}',GLOB_BRACE);//此处需修改图片存放路径,*为任意目录名或文件名
    if(count($arr)>0){
    $j=count($arr);
    $ndel=0;
    for($i=0;$i<$j;$i++){
    $sql="select ".$_config['url']." from ".$_config['table']." where ".$_config['url']." like '%$arr[$i]%'";
    $myrun = mysqli_query($link, $sql);
    echo ($sql."<br>");
    if(!mysqli_num_rows($myrun)){
    echo "$arr[$i]此图片不存在于数据库中,正在删除中......<br><br>";
    unlink ($arr[$i]);
    $ndel++;
    }
    $n=count($arr)-$ndel;
    echo "<center><div style='margin-top:50px; line-height:25px; font-size:15px; color:#3399FF;'>";
    if($ndel>0){echo "已删除<font color='#ff0000'> ".$ndel." </font>张冗余图片,";}
    echo "当前目录中共有<font color='#ff0000'> ".$n." </font>张图片!</div></center>";
    }
    
    if(count($arr)==0){
    echo ("对不起,此目录下没有图片!");
    }
    mysqli_close($link);
    ?>
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部