我编写了一个类,而不是扩展 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/