Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从文件中删除行(PHP)_Php_File - Fatal编程技术网

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

如何从文件中删除行(PHP),php,file,Php,File,为什么只取消设置最后一个字符串以及如何修复它? 注: 结果数组中的每一行都将包含行尾,除非使用了文件\u IGNORE\u NEW\u line,因此如果不希望出现行尾,仍然需要使用rtrim() 因此,要么: $file = file($dir); $string = 'mystring'; foreach($file as $key=>$value) { if(!strcmp($value, $string)) { unse

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

注: 结果数组中的每一行都将包含行尾,除非使用了文件\u IGNORE\u NEW\u line,因此如果不希望出现行尾,仍然需要使用rtrim()

因此,要么:

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


可能会起作用(假设尾随的换行符确实是它们直到最后一行才匹配的原因)。

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


取消设置是一种方法,一旦您选择了要删除的文件中的with line

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

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