$str = "1
2";
$str = preg_replace( "#".PHP_EOL."|\t#", "", $str );
$hand = fopen("t.txt", "w+");
fwrite($hand, $str);
fclose($hand);
我需要从字符串中删除换行符和水平制表符,然后写入txt
文件。
上面的代码只删除了水平制表符,但保留了换行符,即在文本文件中写入:
1
2
我哪里错了?
$str = "1
2";
$str = preg_replace( "#".PHP_EOL."|\t#", "", $str );
$hand = fopen("t.txt", "w+");
fwrite($hand, $str);
fclose($hand);
我需要从字符串中删除换行符和水平制表符,然后写入txt
文件。
上面的代码只删除了水平制表符,但保留了换行符,即在文本文件中写入:
1
2
我哪里错了?
$str = preg_replace('/([\r\n\t])/','', $str);
无需使用PHP_EOL
,因为它只是被翻译成\n
无论如何。只是一些操作系统(如 Windows)使用\r\n
(这就是常量存在的原因),但这不会改变\r
or的含义\n
。
PHP_EOL
取决于操作系统。所以\r\n
在 Windows 和\n
Linux 上。
如果您有一个文件,\r\n
并且您在 Linux 系统上使用删除换行符,PHP_EOL
您将获得类似的结果:\r
仍然会在文件中。
更改正则表达式以简单地包含所有形式:"#\r|\n|\t#"