Удаление изображений из папки сравнения массивов - PullRequest
0 голосов
/ 06 июня 2019

Я использую следующий код для удаления изображений из папки с помощью таблицы. Это работало хорошо в течение нескольких месяцев (бегал один раз в месяц). Затем он начал удалять изображения, которые находятся в таблице, я думаю, сравнение не удается.

Итак, я пытаюсь увидеть, что сравнивается (имя файла и имя файла таблицы). Я не могу заставить 2 выстроиться в ряд, чтобы сравнить их. Кроме того, структура dir, кажется, отключена ("." И ".."). Пожалуйста, смотрите распечатку внизу. Если вам нужно увидеть результат, используйте https://www.stampden.com/users/cron1_delete_images.php

// first put all files into an array 
 $images = scandir('russromei');

 // create a new empty array that gonna hold all files from database 
 $files = [];

 // new we select all files from database 
 // first make your query 
 $query = 'SELECT substr(value,41) FROM ppbv79_listings_media where value like "http://www.stampden.com/users/russromei/%"';

 // create mysqli object 
 $mysqli = new Mysqli($dbhost,$dbuser,$dbpass,$dbname);

 // prepare statement 
 // even tho this query is not vulnerable  to sql injections i'm gonna use prepared statement 
 $stmt  = $mysqli->prepare($query);
 $stmt->execute();
 $stmt->bind_result($file);
 while($stmt->fetch()){ // insert all files into the array we created earlier
     $files[] = $file;
 }

 $stmt->close();
 $mysqli->close();


 // now you have an array of all files from database and images in folder 
 // we are gonna go threw each image to check if it exist in the database 
 $ct=0;
 foreach($images as $img)
 {
     if(!in_array($img,$files)) {
        // delete file 
        $ct=$ct+1;
//        unlink('russromei/'.$img);
//      print("Delete file [". $img ."]<br><br>");
//        print($ct." ".$img."  ".$file."<br>");
        print_r($images[$ct]." ---> ".$files[$ct]."<br>");
//      print_r($files[$ct]."<br>");

     } 
 } 
 unset($img);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...