按行和逗号分割文本文件,然后更新数据库,PHP



我们正在使用指纹扫描仪进行考勤,它会生成这些类型的文本文件

1,MARCOS,MORENO,12:29,15:58,2020-02-26
2,ALEJANDRO,BASAL,12:05,18:01,2020-02-26
3,CARMEN,MORIA,11:58,17:59,2020-02-26

我们想把它上传到我们的网站,加载文件,把文本分成几行,然后每行分成数组,来处理它们,就像这样:

Array1 ([0] => 1 [1] => MARCOS [2] => MORENO [3] => 12:29 [4] => 15:58 [5] => 2020-02-26)
Array2 ([0] => 2 [1] => ALEJANDRO [2] => BASAL[3] => 12:05 [4] => 18:01 [5] => 2020-02-26)
Array3 ([0] => 3 [1] => CARMEN[2] => MORIA [3] => 11:58 [4] => 17:59 [5] => 2020-02-26)

然后将每个数组加载到数据库中。每个[0]进入id,[1]进入name,等等。我们设法加载并读取了文件,但我们不确定如何像我们想要的那样分割文件,到目前为止,我们的代码只分割整个数组,而不考虑换行,它返回这个

Array ([0] => 1 [1] => MARCOS [2] => MORENO [3] => 12:29 [4] => 15:58 [5] => 2020-02-26 [6] => 2 [7] => ALEJANDRO [8] => BASAL[9] => 12:05 [10] => 18:01 [11] => 2020-02-26 [12] => 3 [13] => CARMEN[14] => MORIA [15] => 11:58 [16] => 17:59 [17] => 2020-02-26)

每一行都是一个雇员,每一行总是有相同数量的拆分(用逗号分隔(。如果不可能通过换行来分割,那么仅仅能够处理添加就足够了(用[6]s、[12]s、[18]s等一起处理每[0]s(。然后更新我们数据库中的值。

我们现在的代码非常简单,只是

$file= 'attendance/' . '{file}';
$doc=file_get_contents($file);
$line=explode("n",$doc);
foreach($line as $newline){
echo '<h3 style="color:#453288">'.$newline.'</h3><br>';
}

尝试使用以下命令逐行读取文件https://stackoverflow.com/a/13246630/2177461每一行都可以用逗号分隔,https://php.net/manual/en/function.explode.php


$file = 'attendance/' . '{file}'; 
$handle = fopen($file, "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// process the line read.
$data = explode(',', $line);
// $data will have Array1 ([0] => 1 [1] => MARCOS [2] => MORENO [3] => 12:29 [4] => 15:58 [5] => 2020-02-26)
print_r($data);
}
fclose($handle);
} else {
// error opening the file.
} 

注意:其伪代码可能存在语法错误

最新更新