Я добавляю приведенный выше код относительно использования границ слов, но я думаю, что где-то должна быть синтаксическая ошибка? - Я перепробовал ваше оригинальное решение, и оно, кажется, работает ... Я думаю!

то я справился с этим самостоятельно, но, похоже, я нашел предел своих знаний PHP (что совсем немного!). Этот скрипт предназначен для фильтрации имен файлов (игры roms / iso's и т. Д.). У него есть и другие способы фильтрации, но я только что выделил раздел, который пытаюсь добавить. Мне нужен внешний файл .txt, в который я могу поместить имена файлов примерно так (через один разрыв строки):

Pacman 2 (USA)
Space Invaders (USA)
Asteroids (USA)
Something Else (Europe)

А затем запустив сценарий, он выполнит поиск в каталоге и поместит любые подходящие имена файлов в «удаленную» папку. Он прекрасно работает со всеми другими методами фильтрации, которые он использует. Я просто пытаюсь добавить свой (безуспешно!)

$gameList = trim(shell_exec("ls -1"));
$gameArray = explode("\n", $gameList);
$file = file_get_contents('manualremove.txt');
$manualRemovePattern = '/(' . str_replace(PHP_EOL, "|", $file) . ')/';

shell_exec('mkdir -p Removed');

foreach($gameArray as $thisGame) {
if(!$thisGame) continue;
// Probably already been removed
if(!file_exists($thisGame)) continue;

if(preg_match ($manualRemovePattern , $thisGame)) {
echo "{$thisGame} is on the manual remove list. Moving to Removed folder.\n";
shell_exec("mv \"{$thisGame}\" Removed/");
continue;

Так что это работает, когда я помещаю названия игр без пробелов и скобок в файл .txt. Но пробелы или скобки (или оба) нарушают его функциональность. Может ли кто-нибудь помочь мне?

Большое спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос