Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有逗号分隔文件的php fscanf_Php - Fatal编程技术网

带有逗号分隔文件的php fscanf

带有逗号分隔文件的php fscanf,php,Php,我的文件包含记录行,如 HCV,10002,Mich,2,1,HR Dept.,2015-09-27 10:34:47,Attend 我试过了 $data = fscanf($handle, "%[^ \t\n\r\v\f,]%*c"); list ($a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8) = $data; 但是没有成功,请帮忙 您可以对文件中的每一行使用str\u getcsv。请参见下面的我的代码: $file = 'HCV,10002,Mich,2,1,HR

我的文件包含记录行,如

HCV,10002,Mich,2,1,HR Dept.,2015-09-27 10:34:47,Attend
我试过了

$data = fscanf($handle, "%[^ \t\n\r\v\f,]%*c");
list ($a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8) = $data;

但是没有成功,请帮忙

您可以对文件中的每一行使用
str\u getcsv
。请参见下面的我的代码:

$file = 'HCV,10002,Mich,2,1,HR Dept.,2015-09-27 10:34:47,Attend
HCV2,10002,Mich,2,1,HR Dept.,2015-09-27 10:34:47,Attend
HCV5,10002,Mich,2,1,HR Dept.,2015-09-27 10:34:47,Attend';

$result = [];
foreach (explode(PHP_EOL, $file) as $line) {
    $result[] = str_getcsv($line);
}
print_r($result);
它将输出:

Array
(
    [0] => Array
        (
            [0] => HCV
            [1] => 10002
            [2] => Mich
            [3] => 2
            [4] => 1
            [5] => HR Dept.
            [6] => 2015-09-27 10:34:47
            [7] => Attend
        )

    [1] => Array
        (
            [0] => HCV2
            [1] => 10002
            [2] => Mich
            [3] => 2
            [4] => 1
            [5] => HR Dept.
            [6] => 2015-09-27 10:34:47
            [7] => Attend
        )

    [2] => Array
        (
            [0] => HCV5
            [1] => 10002
            [2] => Mich
            [3] => 2
            [4] => 1
            [5] => HR Dept.
            [6] => 2015-09-27 10:34:47
            [7] => Attend
        )

你希望你的查询是一个数组吗?是的,如果可能的话,我必须把数据放到mysql中!在while循环中包装数据。例如:
while($data=fscanf($handle,%[^\t\n\r\v\f,]%*c”){list($a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8)=$data;}