如何从文件中删除行(PHP)

时间:2013-10-15 16:50:47

标签: php file

    $file = file($dir);
    $string = 'mystring';
    foreach($file as $key=>$value) {
        if(!strcmp($value, $string)) {
           unset($file[$key]);
        }
    }

为什么只取消设置最后一个字符串以及如何修复它?

3 个答案:

答案 0 :(得分:0)

From the manual

  

注意:   除非使用FILE_IGNORE_NEW_LINES,否则结果数组中的每一行都将包含行结尾,因此如果您不希望行结束,则仍需要使用rtrim()。

所以,要么:

$file = file($dir,FILE_IGNORE_NEW_LINES);

或者:

if(!strcmp(rtrim($value), $string)) {

可能会奏效(假设尾随换行确实是他们为什么不匹配直到最后一行的原因)。

答案 1 :(得分:0)

有点不清楚你想要实现什么。 Strcmp仅比较两个字符串并返回第一个字符串是否大于第二个字符串。

取消设置是您在文件中选择要删除的行

后的方法

答案 2 :(得分:0)

要与前两个一起使用,要忽略两端的空白,这可能更符合您的需求:

if(trim($value) !== $string) {