我正在处理来自geonames.org的csv文件,因此我需要获取没有任何附件的csv行。
目前fgetcsv()要求您为$enclosure
参数提供单个字符,如果不这样做,则不会处理CSV数据。
如何使用php本机功能检索没有外壳字符的csv数据?
答案 0 :(得分:5)
作为一种可能的解决方法,您可以使用奇数字符作为附件:
// Read TSV line using 'backspace' as the enclosure character
fgetcsv($stream, 0, "\t", chr(8));
答案 1 :(得分:2)
如前所述,最简单的方法就是不要使用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);