2016-06-09 50 views
0

我有一个与某些文件删除有关的问题。让我们从代码开始如果字符串包含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)。我试图在修改时间3分钟后删除任何包含CORO的文件,同时删除任何其他文件。

回答

1

合并两个条件

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

你也可以这样写:

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

continue跳过循环体的其余部分,并进入下一个迭代。

+0

我试过你的组合,但它似乎根本没有删除这些文件。我认为这个问题可能与file_get_contents有关。 –

+0

我在'time'之后省略了'()'。 – Barmar

相关问题