使用PHP删除text.txt中的真空/空行

使用PHP删除text.txt中的真空/空行,php,line,emptydatatext,Php,Line,Emptydatatext,我试图删除真空管路。 我的剧本,搜索一行,删除她,但它仍然是一个真空行 hello dude world 我做了以下脚本: $chaine="dude"; $file=$filename; $texte = file_get_contents($file); $texte = str_replace($chaine ,'',$texte); $texte = preg_replace('/\s+/s', "\n", $texte); try { if(!$

我试图删除真空管路。 我的剧本,搜索一行,删除她,但它仍然是一个真空行

hello
dude
world 
我做了以下脚本:

$chaine="dude"; 
$file=$filename; 
$texte = file_get_contents($file); 
$texte = str_replace($chaine ,'',$texte); 
$texte = preg_replace('/\s+/s', "\n", $texte);

try
    {

        if(!$fd = fopen($filename, "w")){
            throw new Exception("Erreur ouverture du fichier");
        }
    else
    {   
        fwrite($fd, $texte); 

        /*On ferme le fichier*/
        fclose($fd);    
    }

    }

    catch (Exception $e) {
        echo "Error de parametre fichier introuvable (File: ".$e->getFile().", line ".
        $e->getLine()."): ".$e->getMessage();
        echo "\n";
    }
我有

hello
world
但是如果我删除第一条:你好,我有一条真空管路:

(vacuum line)
world
我怎样才能解决这个问题

我试着修剪、str_替换,但它不起作用…

替换这个:

$texte = str_replace($chaine ,'',$texte); 
$texte = preg_replace('/\s+/s', "\n", $texte);
为此:

$texte = preg_replace('#' . $chaine . '\s*#', "\r", $texte);

我不知道你的换行符是什么样子的,但是试着用“\r”、“\n”或“\r\n”作为替换字符串。

$texte=preg\u replace('/^'.preg\u quote($chaine,'/')。[\r\n]+/','$texte)仅适用于第一行。如果$chaine=world,则它不起作用将
[\r\n]+
更改为
(?:[\r\n]+|$)
工作正常!Thx!:)“这有什么用?”在队列中?它们是正则分隔符。您需要将它们放在正则表达式字符串的开头和结尾;它可以是任何不寻常的字符,如
%
·
~
^
/