gugglegum / clv-rw

常长度值的文本文件读取器和写入器

1.0.1 2018-11-27 19:42 UTC

This package is auto-updated.

Last update: 2024-09-14 11:18:10 UTC


README

这是一个非常少用的数据格式,它是一个具有固定长度行的文本文件。它是一个具有行和单元格的表格数据。行是由LFCR+LF\n\r\n)分隔的文本行。单元格具有固定大小,因此不使用特殊的分隔符字符。多余的空间用空格填充。

这个格式比优势更多,所以只用来与旧系统交互。不要在新的服务中使用此格式。CSV或JSON在各方面都更好。这个格式的主要限制是值不能大于列预定义的大小。但是如果你定义了很大的列大小——许多单元格将主要填充空格。

这个库编写得你可以同时处理文件和流。所以你可以从stdin读取,写入到stdout或使用由tmpfile()创建的临时文件。

我在与汉斯(服装供应商)的API集成期间遇到了这个格式。我不知道这个文件格式是否有任何已确立的名字。我称之为"CLV",这是"常长度值"的缩写。我也可以称之为"Fixed Length Values",但是"FLV"这个缩写已经被"Flash Video"使用了。

安装

composer require gugglegum/clv-rw

使用

参见/examples部分。

故障排除

如果你有关于MAC的行结束符\r的问题,你可以打开PHP选项auto_detect_line_endings

打开后,PHP将检查fgets()和file()读取的数据,以查看它是否使用Unix、MS-Dos或Macintosh的行结束约定。

你可以在PHP代码中打开它。只需在读取MAC文件之前添加这个:

ini_set('auto_detect_line_endings', true);