Я добавляю приведенный выше код относительно использования границ слов, но я думаю, что где-то должна быть синтаксическая ошибка? - Я перепробовал ваше оригинальное решение, и оно, кажется, работает ... Я думаю!
то я справился с этим самостоятельно, но, похоже, я нашел предел своих знаний 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. Но пробелы или скобки (или оба) нарушают его функциональность. Может ли кто-нибудь помочь мне?
Большое спасибо!