$file = file($dir);
$string = 'mystring';
foreach($file as $key=>$value) {
if(!strcmp($value, $string)) {
unset($file[$key]);
}
}
为什么只取消设置最后一个字符串以及如何修复它?
来自手册
注意: 除非使用FILE_IGNORE_NEW_LINES,否则结果数组中的每一行都将包含行尾,因此如果您不希望行结尾存在,您仍然需要使用 rtrim()。
因此,要么:
$file = file($dir,FILE_IGNORE_NEW_LINES);
或:
if(!strcmp(rtrim($value), $string)) {
可能会起作用(假设尾随换行符确实是它们直到最后一行才匹配的原因)。
目前还
不清楚您想要实现的目标。Strcmp 仅比较两个字符串,并返回第一个字符串是否大于第二个字符串。
取消设置是选择文件中要删除的行后要走的路
为了配合前两个,忽略两端的空格,这可能是您正在寻找的更多内容:
if(trim($value) !== $string) {