Php 没有封闭字符时,如何使用fgetcsv?
我正在处理来自的csv文件,因此我需要在没有任何附件的情况下获取csv行 当前要求为Php 没有封闭字符时,如何使用fgetcsv?,php,csv,fgetcsv,Php,Csv,Fgetcsv,我正在处理来自的csv文件,因此我需要在没有任何附件的情况下获取csv行 当前要求为$enclosure参数提供单个字符,如果不提供,则不会处理CSV数据 如何使用php本机功能检索没有外壳字符的csv数据?如前所述,最简单的方法是根本不使用fgetcsv()。您只需使用plain()函数读取CSV中的每一行,然后使用()创建每一行的所有不同字段的数组 下面是一个小例子: $handle = fopen("foo.csv", "r"); $i = 1; // for test output
$enclosure
参数提供单个字符,如果不提供,则不会处理CSV数据
如何使用php本机功能检索没有外壳字符的csv数据?如前所述,最简单的方法是根本不使用fgetcsv()。您只需使用plain()函数读取CSV中的每一行,然后使用()创建每一行的所有不同字段的数组 下面是一个小例子:
$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);
作为一种可能的解决方法,您可以使用奇数字符作为附件:
// Read TSV line using 'backspace' as the enclosure character
fgetcsv($stream, 0, "\t", chr(8));
只需逐行读取数据,然后自己将数据解析为所需格式。这不考虑fgetcsv提供的转义功能,可能会导致csv数据中使用分号的字符串格式错误。不过,对于大多数情况,这是一个可行的解决方案。函数名“char”中的输入错误应该是“chr”。