以下の内容のサンプルを含むファイルがあり、ファイルには以下のような複数の行があります。
Jan 6 10:32:45 id=example sn=0123456789 time="2013-01-06 10:32:46 UTC" fw=1.2.3.4 pri=1 c=0 m=1000 msg="行出力の例" sid =100 cat=TEST-PHP pid=200 src=1.2.3.5:1234:Z1-C444 dst=1.2.3.6:4321:Z1-C444:
私が達成しようとしているのは、これらの行を読み取り、行に基づいて配列に分割し、次に var= 値に基づいてネストされた配列に分割することです。次に例を示します。
Array (
[0] => Array
(
[0] => "Jan 6 10:32:45"
[id] => "example"
[sn] => "0123456789"
[time] => "2013-01-06 10:32:46 UTC"
[fw] => "1.2.3.4"
[pri] => "1"
[c] => "0"
[m] => "1000"
[msg] => "Example Line Output"
[sid] => "100"
[cat] => "TEST-PHP"
[pid] => "200"
[src] => "1.2.3.5:1234:Z1-C444"
[dst] => "1.2.3.6:4321:Z1-C444:"
)
[1] => Array
(
[1] => "Jan 7 1:50:40"
[id] => "example2"
[sn] => "0123456799"
[time] => "2013-01-07 1:50:41 UTC"
[fw] => "1.2.3.4"
[pri] => "2"
[c] => "2"
[m] => "2000"
[msg] => "Example Line Output 2"
[sid] => "200"
[cat] => "TEST-PHP"
[pid] => "200"
[src] => "1.2.3.7:1234:Z1-C444"
[dst] => "1.2.3.8:4321:Z1-C444:"
)
)
私ができる唯一のことは、各行を1つの配列に入れることです。上記のようにデータを入力することはできません。どんな助けでも大歓迎です。
編集:これは私が持っているコードで、非常に単純で、ファイルを読み取り、各行を配列に分割します。
<?php
$filename = "/var/www/html/openfile.log";
// Open the file
$fp = @fopen($filename, 'r');
// Add each line to an array
if ($fp) {
$array = explode("\n", fread($fp, filesize($filename)));
}
echo "<pre>";
print_r($array);
echo "</pre>";
?>