Zend Framework 2 - 警告:SplFileObject::setCsvControl():转义必须是一个字符
Zend Framework 2 - Warning: SplFileObject::setCsvControl(): escape must be a character
您好,我正在尝试获取 csv 文件数据并在我的视图中显示该数据。
下面是我的控制器函数:
public function indexAction()
{
$delimiter = ',';
$enclosure = '""';
$escape = '//';
$filename = 'data' . DIRECTORY_SEPARATOR . 'csv' . DIRECTORY_SEPARATOR . 'StoreDepartment.csv';;
$this->file = new SplFileObject($filename);
$this->file->setFlags(SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
$this->file->setCsvControl($delimiter, $enclosure, $escape);
$this->useFirstRecordAsHeader = true;
$response = $this->getResponse();
$headers = $response->getHeaders();
$headers->addHeaderLine('Content-Type', 'text/csv');
$contents = $this->file->fread($this->file->getSize());
$response->setContent($contents);
$views = new ViewModel(array('text'=>$response));
return $views;
}
我正在以 csv 格式获取所有数据。但我低于警告:
Warning: SplFileObject::setCsvControl(): escape must be a character
另外我想把这个数据转换成JSON或者数组格式可以吗?
主要概念是我想将此数据存储到我的数据库中 table。那么 suitable 在数据库中存储数据的格式是什么?请帮忙
如何解决这两个错误?
这个警告是因为你的 $escape 变量是两个字符而不是一个。
$escape = '/';
或
$escape = "//";
因为您只需要在使用双引号时转义反斜杠。
关于您关于如何存储在数据库中的问题。如果不知道您需要做什么以及 CSV 中有什么数据,就很难说。但是我建议在 CSV 列和数据库列之间建立一对一的映射。尽管您需要的表格数量实际上取决于数据和用例。在某些情况下,您可能只想存储原始数据,但又需要更多信息,并且仍然会给出一个自以为是的答案
您好,我正在尝试获取 csv 文件数据并在我的视图中显示该数据。
下面是我的控制器函数:
public function indexAction()
{
$delimiter = ',';
$enclosure = '""';
$escape = '//';
$filename = 'data' . DIRECTORY_SEPARATOR . 'csv' . DIRECTORY_SEPARATOR . 'StoreDepartment.csv';;
$this->file = new SplFileObject($filename);
$this->file->setFlags(SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
$this->file->setCsvControl($delimiter, $enclosure, $escape);
$this->useFirstRecordAsHeader = true;
$response = $this->getResponse();
$headers = $response->getHeaders();
$headers->addHeaderLine('Content-Type', 'text/csv');
$contents = $this->file->fread($this->file->getSize());
$response->setContent($contents);
$views = new ViewModel(array('text'=>$response));
return $views;
}
我正在以 csv 格式获取所有数据。但我低于警告:
Warning: SplFileObject::setCsvControl(): escape must be a character
另外我想把这个数据转换成JSON或者数组格式可以吗?
主要概念是我想将此数据存储到我的数据库中 table。那么 suitable 在数据库中存储数据的格式是什么?请帮忙
如何解决这两个错误?
这个警告是因为你的 $escape 变量是两个字符而不是一个。
$escape = '/';
或
$escape = "//";
因为您只需要在使用双引号时转义反斜杠。
关于您关于如何存储在数据库中的问题。如果不知道您需要做什么以及 CSV 中有什么数据,就很难说。但是我建议在 CSV 列和数据库列之间建立一对一的映射。尽管您需要的表格数量实际上取决于数据和用例。在某些情况下,您可能只想存储原始数据,但又需要更多信息,并且仍然会给出一个自以为是的答案