我不确定参数的优点是什么 .

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

默认值为反斜杠 . CSV规范不需要任何转义字符 . 值中的外壳字符加倍,并且当括起值时,分隔符或换行符都不会产生任何问题 . 我在CSV文件中有这样的行:

"value1 can contain qoutes like this (""), comma (,) and
new line","value2\"" contains desired backslash, quote and later comma.","value3 is simple"

结果是不必要的 . 在最后一个参数中强制转义字符会中断读取此行并生成4个值而不是3.值2中的反斜杠将使用第一个引号,第二个引号将被视为封闭字符 . 然后后来的昏迷作为不需要的项目分隔符工作 .

如何避免使用任何转义字符?传递空字符串会导致警告“必须传递单个字符” . 传递一些不太可能的角色将有助于(证明)但是当我使用更多多语言8位编码(windows-1250,windows-1252,windows-1256等)时它不可靠 .