php - PHP - SplFileObject 在第一行写入 CSV
问题描述
如何将以下 CSV 格式的数组写入文件的特定行。我正在使用 PHP LimitIterator来检索我的文件的一部分。
$fields = ['value_1', 'value_2', 'value_3'];
$fileObject = new SplFileObject('my/file/path', 'r+');
$fileObject->setFlags(
SplFileObject::READ_CSV |
SplFileObject::SKIP_EMPTY |
SplFileObject::READ_AHEAD |
SplFileObject::DROP_NEW_LINE
);
$fileObject->setCsvControl($delimiter, $enclosure);
$iterator = new LimitIterator($fileObject, 5, 100); // Get file content starting at line 5
foreach ($iterator as $index => $row) {
if (3 === $index) {
// ...
// My business logic
// ...
// I wanna write at line 8 but actually right at the content at line 9
$fileObject->seek($iterator->getPosition() - 1); // Retrieve the right position
$fileObject->fputcsv($fields, $delimiter, $enclosure); // Write of the line after the seek().
}
}
有谁知道任何方法?我真的被困住了:O
解决方案
推荐阅读
- java - 为什么我们需要内部接口,尤其是使用私有访问修饰符?
- php - 处理失败 [图片链接] - Feed (OPENCART) Google Merchant Center
- docker - 在 docker(-compose) 中实时重新加载 Prometheus 配置
- python - 如何快速抽取一个 numpy 数组?
- python - 如何在 Python 中使用 __slots__ 转储对象的所有字段
- angular - 如何使用 ng-for 访问 ng-container 中的变量以用于我的 ngif?
- csv - 派生列转换编辑器 - 我需要在订单号末尾以递增顺序添加数字
- android - 如何在android中确认应用内购买?
- angular - Dexie Table.delete 在 Chrome/Safari 上使用复合键仅假装删除该项目
- c++ - 在 Eclipse C++ 中启用漂亮的打印