php - 使用 SplFileObject 转换 CR 换行符

标签 php line-breaks

我编写了一个类,而不是扩展 SplFileObject 以打开 CSV 并具有关联数组。它有效,但如果 csv 文件使用 CR 换行符则无效。

我知道你可以像这样转换字符串换行符:

$string = str_replace($this::CRLF, $string::LF, $file);
$string = str_replace($this::CR, $string::LF, $file);

但我想知道如何在我的构造函数中转换换行符。

我如何创建我的文件:

$file = new CSVFile(__DIR__ . '/../../Resources/data/myfile.csv');

类 CSVFile.php

use \SplFileObject;

class CSVFile extends SplFileObject
{
    private $keys;    

    public function __construct($file)
    {
        parent::__construct($file);
        $this->setFlags(SplFileObject::READ_CSV);
    }

    public function rewind()
    {
        parent::rewind();
        $this->keys = parent::current();
        parent::next();
    }

    public function current()
    {
        return array_combine($this->keys, parent::current());
    }

    public function getKeys()
    {
        return $this->keys;
    }

}

最佳答案

不太确定你想做什么,但你试过这个吗? ini_set('auto_detect_line_endings',true);

关于php - 使用 SplFileObject 转换 CR 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18483080/

相关文章:

PHP:尝试用 <br 创建一个新行

javascript - 免费托管网站如何运作?

php - 将文本文件转换为 CSV 或将每个值存储在 mysql 中?

php - Google 日历 API V3 更新事件

javascript - 如何消除 html 中的换行敏感度?

iphone - 将换行符替换为 <br> 以在 UIWebView 中使用

php - 服务器没有给出 json 输出

使用 Wordpress 在 Javascript 中使用 PHP

java - Docx4j 字符串中的换行符

android - 在软连字符处换行