1

私のバー コードスキャナーは次のようなファイルを作成します
: 12:59:55-07-22-1229749 03/01/2000-12:59:57-07-0 1 1 1


行 1 には 21 が必要な IDが含ま
れています 行 2 は必要な場所です 0 1 1 0
行 3 は ID 22
です 行 4 は場所 0 1 1 1 です

ファイルには 100 行を含めることができます

読んだ後、次のようにデータベースを更新します

これまでのところ、スクリプトがあります

$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;

ループなどで処理できると思いますが、動作させることができません..
どんな助けも大歓迎です

4

3 に答える 3

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仮定し、2 のステップでデータを読み取ります。idlocation

于 2013-07-28T03:29:35.093 に答える
-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] }

于 2013-07-28T03:01:13.167 に答える