мне нужно, чтобы иметь возможность анализировать такого рода данных в PHP:Нужна помощь разборе некоторые данные в PHP
Acct: 1
email : [email protected]
status : online
--------------------------------------------------
Acct: 2
email : [email protected]
status : banned
--------------------------------------------------
Acct: 3
signedupname : SomeUsername
somethingelse : offline
--------------------------------------------------
Как вы можете видеть данные в значительной степени случайным образом. Единственное, что остается неизменным, - это -----
, разделяющее каждую запись и бит Acct: 1
. Заполнение между каждым :
часто изменяется, как и переменная, представляющая каждый бит данных.
Я пробовал пройти и разбирать все это самостоятельно, используя регулярное выражение, но я недостаточно квалифицирован, чтобы быть в состоянии сделать это правильно. В конце этого я хочу получить данные по следующему адресу:
Acct: <integer>
var1: <string>
var2: <string>
Если это имеет смысл вообще. Это не должно быть таким эффектным, поскольку мне нужно будет делать это примерно раз в день, и я не возражаю ждать, как долго он понадобится.
спасибо. :)
Edit: Это то, что я сам по себе:
<?php
$data = file_get_contents('records.txt');
$data = explode('******** Saved Host list with acct/variables ********', $data);
$data = explode('--------------------------------------------------', $data[1]);
foreach($data as &$dataz)
{
$dataz = trim($dataz);
}
$data = str_replace('Acct:', "\nAcct:", $data);
foreach($data as $dataz)
{
preg_match('/Acct: (.*)/', $dataz, $match);
$acct = $match[1];
preg_match('/: (.*)/', $dataz, $match);
$var1 = $match[1];
echo $var1;
}
?>
я добрался до извлечения Acct:
части, но ничего кроме этого я просто не могу получить мою голову вокруг.
Это помогает, если вы покажете, что вы сделали до сих пор. Люди больше готовы помочь, если вы можете показать им свои усилия. –
Ах, конечно. Я отредактирую свой ОП. – Kratz
Если строки тире будут содержать только три штриха, т. Е. '---', тогда это будет [YAML] (http://yaml.org) – Joey