Удаление нескольких файлов и вариантов их названий с помощью PHP из списка текстовых файлов - PullRequest
0 голосов
/ 21 апреля 2020

Мне нужно создать скрипт для удаления группы изображений в каталоге WordPress. Как вы, возможно, уже знаете, один файл изображения может иметь несколько вариантов, в зависимости от способа визуализации изображений.

В любом случае, у меня есть список изображений в текстовом файле, который содержит следующее:

wp-content/uploads/2018/09/L_14BQ-FK1
wp-content/uploads/2018/09/L_15EKP160VIBROBT-KIT
wp-content/uploads/2018/09/L_29DS15172GB
wp-content/uploads/2018/09/L_29DS18172GB
wp-content/uploads/2018/09/L_29DS2415

Например, мне нужно удалить L_14BQ-FK1.jpg и его варианты, такие как L_14BQ-FK1-100x100.jpg, L_14BQ-FK1-200x200.jpg и др. c.

Так Пока я пробовал foreach внутри foreach, но он не работает:

$list = file('list.txt');
if ($list === false) {
    die('Cannot open file');
}

foreach($list as $file){
$theFile = glob($file.'*.jpg');  

   foreach ($theFile as $single){
     echo $single."<br>";
   }
}

Удивительно, но эхо создало только последний список и его варианты, L_29DS2415-100x100.jpg, L_29DS2415-100x200.jpg, et c

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 21 апреля 2020

Читая руководство по файлу в php. net, я только что понял, что массив, возвращаемый из функции FILE, включает новую строку, поэтому пересмотрел мой исходный код, добавив флаги 'FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES 'работает отлично.

Таким образом, окончательный код будет:

$list = file('list.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if ($list === false) {
    die('Cannot open file');
}

foreach($list as $file){
$theFile = glob($file.'*.jpg');  

   foreach ($theFile as $single){
     echo $single."<br>";
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...