2013-10-15 190 views
0
$file = file($dir); 
    $string = 'mystring'; 
    foreach($file as $key=>$value) { 
     if(!strcmp($value, $string)) { 
      unset($file[$key]); 
     } 
    } 

为什么只设置最后一个字符串以及如何修复它?如何删除文件中的行(PHP)

回答

0

From the manual

注: 所得数组中的每一行都将包括结束行,除非FILE_IGNORE_NEW_LINES被使用,所以你仍然需要使用RTRIM(),如果你不想让行结束当前做。

所以,要么:

$file = file($dir,FILE_IGNORE_NEW_LINES); 

或者:

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

可能会工作(假设后的新行确实是原因,为什么他们不匹配,直到最后一行)。

+0

非常感谢。 – 10minutee

0

这是有点不清楚你想达到什么。 Strcmp只比较两个字符串,并返回第一个字符串是否大于第二个字符串。

的未设置是要走的路,一旦你的文件符合选择删除

0

要与前两次走,在两端忽略空白,这可能是更你在找什么为:

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