Я пытаюсь прочитать структурированный файл журнала, разбить его на строку, а затем на двоеточие.
Я пробую в двух разных подходах fgets
и file_get_contents
, но в обоих я могу достичь только одной или другой цели (взорваться по строке или по двоеточию).
Здесь у нас есть код:
<code><?php
// using fgets
$file = fopen('/var/www/html/PU1PAX.log', 'r');
while (!feof($file)) { // while not end of file
$content = fgets($file); // get file's content
$handle = explode(':', $content); // and explode by string
echo '<pre>';
print_r($handle);
echo '
';
}
fclose ($ файла);
// используя file_get_contents
$ file = '/var/www/html/PU1PAX.log';
$ content = file_get_contents ($ file);
$ handle = explode (PHP_EOL, $ content);
echo '
';
print_r ($handle);
echo '
';
Первая часть кода печатает один массив в каждую строку:
массив
(
[0] => START-OF-LOG
[1] => 3,0
)
Array
(
[0] => LOCATION
[1] => DX
)
Array
(
[0] => CALLSIGN
[1] => PU1PAX
)
Array
(
[0] => CLUB
[1] =>
)
Array
(
[0] => CONTEST
[1] => CQRJVHF
)
Вторая часть печатает только один массив со всеми упорядоченными строками:
Array
(
[0] => START-OF-LOG: 3.0
[1] => LOCATION: DX
[2] => CALLSIGN: PU1PAX
[3] => CLUB:
[4] => CONTEST: CQRJVHF
)
Во-первых, я хотел бы найти решение для группировки всех этих массивов вместе, так как контент более или менее разделен и работоспособен.
Во-вторых, было бы интересно, если бы я мог изменить массив таким образом, чтобы я мог снова взорвать его (на этот раз через двоеточие), чтобы первая часть строки была ключами массива, а вторая часть - значения массива, как в следующем примере:
Array
(
[START-OF-LOG] => 3.0
[LOCATION] => DX
[CALLSIGN] => PU1PAX
[CLUB] =>
[CONTEST] => CQRJVHF
)
Но я застрял ...: - (