我正在处理来自geonames.org的 csv 文件,因此我需要获取没有任何附件的 csv 行。
目前fgetcsv()要求您为参数提供单个字符,$enclosure
如果您不这样做,则不会处理 CSV 数据。
如何使用 php 本机功能检索没有附件字符的 csv 数据?
我正在处理来自geonames.org的 csv 文件,因此我需要获取没有任何附件的 csv 行。
目前fgetcsv()要求您为参数提供单个字符,$enclosure
如果您不这样做,则不会处理 CSV 数据。
如何使用 php 本机功能检索没有附件字符的 csv 数据?
作为一种可能的解决方法,您可以使用奇数字符作为附件:
// Read TSV line using 'backspace' as the enclosure character
fgetcsv($stream, 0, "\t", chr(8));
如前所述,最简单的方法是根本不使用 fgetcsv()。您可以只使用普通的fgets () 函数从 CSV 读取每一行,然后使用explode () 创建每行所有不同字段的数组
这是一个小例子:
$handle = fopen("foo.csv", "r");
$i = 1; // for test output
while (($buffer = fgets($handle)) !== false) {
$fields = explode(";", $buffer); // assuming that fields are separated with semicolons
$j = 1;
// Test output
echo "Line $i: ";
// This is just for show, you can use a regular for loop instead
foreach ($fields as $field) {
echo "Field $j: $field";
$j++;
}
echo "\n";
$i++;
}
fclose($handle);