「PHP」データベースの中のファイル記録数によってファイルを削除する
サンプルコード:
<?php
//機能:データベースの中のカラムとフォルダのファイルが一致するかどうかを判断する
//一致しない場合、ファイルを削除して、システム負荷を削減する
//$dir 検索のファイルディレクトリ
//$table 検索テーブル
//$field 検索のカラム
//====================
function delfile($dir = “",$table,$field){
//ディレクトリのファイルを取得
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file!="."&&$file!=".."){
$exit[]=$file;}
}
closedir($dh);
}
}
//データベースのファイル、画像アドレスを取得
$sql="select $field from $table";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
$pic[]=$row[pic];
}
//array_diffを利用する
$result = @array_diff($exit, $pic);
if($result==null){
echo “削除ファイルがありません";
}
foreach($result as $id=>$values){
echo “システム削除ファイル".$values."<br>";
$file=$dir.$values;
unlink(“$file");
}
}
?>