0

PHPでテキストファイルを解析する必要があります。以下をご覧ください。画像としてアップロードしました。フィールドマーケットを黄色にする必要があります。

多くの方法を試しましたが、自信がありません。誰か助けてくれませんか?

ありがとう

ここに画像の説明を入力

4

2 に答える 2

2

正規表現といくつかのトークン化を使用してファイルを処理できます。フィールド区切り値は「/」で、レコード区切りは「\r\n\r\n」のようです。

$string = "data"; //lets assume your data is contained in one string
$records = preg_split("/^[\r\n\s]+$/", $string); 
//this line assume your file contains dos formatting, change to "/\r\r/" for osx and "/\n\n/" for unix

$data = array();
foreach ($records as $record) { 
     $fields = explode("/", $records);
     $data[] = array($fields[2], $fields[3], $fields[7], $fields[16);
}

var_dump($data);

レコード セパレータは重要であり、ファイル エンコーディングに基づいて調整する必要があることに注意してください。

アップデート。2 つの連続する新しい行ではなく、空の行になるようにレコード セパレータを改善しました。

于 2013-07-20T09:32:48.507 に答える
0

次のことを試してください。

$pattern[] = '#[\d]{02}-[\d]{2}-[\d]{2}/[\d]{2}\s[A-Z]{1}\s[\d]{2}#';
$pattern[] = '#EVENT=[A-Z]{3,}#';
$pattern[] = '#AFLR=[\d]{3}-[\d]{3}#';
$res = array();
foreach ($pattern as $key => $value){
    if (preg_match_all($value, $text, $matches)){
        $res[] = $matches[0];
    } else {
        $res[] = NULL;
    }
}

EVENTのように見えAFLR、一定のままの変数名であるため、これらの文字をハードコーディングしました。そうでない場合は、お知らせください。

于 2013-07-20T09:47:25.453 に答える