PHP中如何换行(PHP换行符注意事项)

我们平时开发的时候,需要让输出结果换行一般会用PHP_EOL,其实用这个是正确的。

但是,我们经常遇到的情况是,读取一个文件,然后通过换行符进行分割,例如:

<?php
$file = file_get_contents('xiaofamao.txt');
$lines = explode(PHP_EOL, $file);
var_dump($lines);
?>

有时候,文件是从 Linux 服务器里下载的,会导致 explode 返回错误,为什么呢?

PHP换行符注意事项:

因为 Linux 的换行符是 \n,而 Windows 的换行符是 \r\n,所以 explode 并不能对字符串进行分割。

所以,我处理文件的时候,会先对读取后的文件进行换行符修复,代码:

<?php
// 对换行符进行统一
if (! function_exists('fix_newline_PHP_EOL')) {
    function fix_newline_PHP_EOL($data) {
        $data = str_replace("\r", "\n", $data);
        while(strpos($data, "\n\n") !== false) {
            $data = str_replace("\n\n", "\n", $data);
        }
        $data = str_replace("\n", PHP_EOL, $data);

        return $data;
    }
}
?>

统一后,再进行分割,省去了很多没必要的调试时间。

发表评论

您的电子邮箱地址不会被公开。