(PHP 5 >= 5.2.0, PHP 7, PHP 8)
SplFileObject::setCsvControl — Set the delimiter, enclosure and escape character for CSV
$separator
= ",", string $enclosure
= "\"", string $escape
= "\\"): voidSets the delimiter, enclosure and escape character for parsing CSV fields.
separator
可选的 separator
参数,设置字段分隔符(仅一个单字节字符)。
enclosure
可选的 enclosure
参数,设置字段环绕符(仅一个单字节字符)。
escape
可选的 escape
参数,设置转义字符(最多一个单字节字符)。空字符串(""
)禁用所有的转义机制。
注意: Usually an
enclosure
character is escaped inside a field by doubling it; however, theescape
character can be used as an alternative. So for the default parameter values""
and\"
have the same meaning. Other than allowing to escape theenclosure
character theescape
character has no special meaning; it isn't even meant to escape itself.
当 escape
被设置为非空字符串(""
)时,
可能导致生成的 CSV 不符合 » RFC 4180 的要求,
或者无法通过 PHP CSV 函数的往返处理。
escape
的默认值是 "\\"
,因此建议显式地将其设置为空字符串。
默认值将在未来的 PHP 版本中更改,不早于 PHP 9.0。
没有返回值。
版本 | 说明 |
---|---|
7.4.0 |
The escape parameter now also accepts an empty
string to disable the proprietary escape mechanism.
|
示例 #1 SplFileObject::setCsvControl() example
<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
list ($fruit, $quantity) = $row;
// Do something with values
}
?>
Contents of data.csv
<?php apples|20 bananas|14 cherries|87 ?>