2016-06-09 6 views
0

У меня есть вопрос, связанный с некоторыми удалениями файлов. Начните с кодаИсключить unlink, если строка содержит X

$dir = "./reporting/live-metrics/"; 
foreach (glob($dir."*") as $file) { 
$live = file_get_contents($file); 
if (strpos($live, 'CORO') !== false) { 
} 
if (filemtime($file) < time() - 3 * 60) { 
    $exclude[] = $live; 
    unlink($file); 
    } 
} 

Я уверен, что мое использование file_get_contents и strpos неверно. Моя попытка состоит в том, что в живых метриках создаются несколько файлов, и единственная константа находится в строке 2 файла (либо CORO, либо EMER). Я пытаюсь исключить любой файл, содержащий CORO внутри файла, при удалении любого другого файла через 3 минуты измененного времени.

ответ

1

Объединить два условия

if (strpos($live, 'CORO') === false && filemtime($file) < time() - 3 * 60) { 
    $exclude[] = $live; 
    unlink($file); 
} 

Вы могли бы также написать:

if (strpos($live, 'CORO') !== false { 
    continue; 
} 

continue пропускает оставшуюся часть тела цикла и переходит к следующей итерации.

+0

Я пробовал вашу комбинацию, но, похоже, она больше не удаляет файлы. Я думаю, что проблема может быть с файлом_get_contents. –

+0

Я забыл '()' after 'time'. – Barmar

 Смежные вопросы

  • Нет связанных вопросов^_^