我的条码扫描器会生成如下文件:
3月1日/ 2000年12:59:49-07-21-1229749
03/01 / 2000-12:59:51-07-0 1 1 0
3月1日/ 2000年12:59:55-07-22-1229749
03/01 / 2000-12:59:57-07-0 1 1 1
第1行包含我需要的身份21
第2行是我需要的位置0 1 1 0
线路3再次为id 22
第4行再次位置0 1 1 1
该文件可包含100行
阅读后我更新了数据库,如:
mysql_query(“UPDATE parts SET locatie ='$ locatie_regel_2'WHERE id ='$ id_regel_1'”);
到目前为止,我有我的剧本
$file = file_get_contents('C:\test\BARCODE.TXT');
$strip = explode("\n", $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$regel_1_a = $strip[0];
$regel_1_b = explode(':', $regel_1_a);
$regel_1_c = explode('-', $regel_1_b[2]);
$id_regel_1 = $regel_1_c[2];
//echo $id_regel_1;
$regel_2_a = $strip[1];
$regel_2_b = explode(':', $regel_2_a);
$regel_2_c = explode('-', $regel_2_b[2]);
$locatie_regel_2 = $regel_2_c[2];
//echo $locatie_regel_2;
我认为它可以处理bij循环或其他什么,但我不能让它工作..
欢迎任何帮助
答案 0 :(得分:1)
file
会从那里获取一个文本文件数组,您可以读取该数组与您需要的数据配对:
<?php
// load your database information here otherwise the mysql_query will not work.
$data = file('C:\test\BARCODE.TXT', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$total = count($data) - 1;
for ($i = 0; $i < $total; ++$i)
{
$parts = explode('-', $data[$i]);
$id = $parts[count($parts) - 2];
$i++;
$parts = explode('-', $data[$i]);
$location = array_pop($parts);
mysql_query("UPDATE parts SET locatie = '$location' WHERE id = '$id'");
}
此for
假设您的数据以id
行开头,下一行始终为location
,它将以2为步骤读取数据。
答案 1 :(得分:0)
我希望这有帮助:
$a = array();
$file = file_get_contents('C:\test\BARCODE.TXT');
foreach ( $file as $content ) {
$a[] = array_filter(array_map("trim", explode("\n", $content)));
}
for($i=0;$i<$a.count();$i++){
$a[i][0] = $strip[0];
$a[i][1] = explode(':', $a[i][0]);
$a[i][2] = explode('-', $a[i][1][2]);
$a[i][3] = $a[i][2][2];
if(i%2!=0)
mysql_query("UPDATE parts SET locatie = '$a[i][3]' WHERE id = '$a[i-1][3]'");
}
答案 2 :(得分:-1)
FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);参数应该是file()函数的一部分,而不是爆炸。
$strip = file('C:\test\BARCODE.TXT',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
这应该使用$ strip创建您正在寻找的数组。
for ($i=0;$i<sizeof($strip);$i+=2) {
//process strip[i]
// process strip[i+1]
}