从磁盘中删除数据库中未使用的映像

时间:2017-03-10 13:32:32

标签: php mysql

我有超过100k的图像要检查,但经过几次检查(如100)后脚本就会停止。如何使用某个限制让脚本继续工作而不删除退出的图像?

这是我的代码:

$images = scandir("../upload", 1);

foreach ($images as $itemlc) 
{
    $res=mysql_query("SELECT * FROM $table WHERE rimage='$itemlc'"); 
    $count = mysql_num_rows($res); 
    if($count == 0)
    {
        $file_path = '../images/';
        $src=$file_path.$itemlc;    
        @unlink($src);
        echo $itemlc; echo " <b>deleted</b> <br> ";     
    }
}

1 个答案:

答案 0 :(得分:0)

除了设置

set_time_limit(0);  //if safe mode off
ini_set('max_execution_time', 0); //if safe mode on

您应该索引使用WHERE的列(至少是临时的)。

或者使用单个查询来提取简单数组中的数据,然后在服务器非常弱的情况下从此数组中检查数据。

并且,如果可以的话,请从命令行运行

php index.php

看到更快的输出