Мне нужно иметь возможность анализировать данные такого рода в PHP:
Acct: 1
email : bleh@gmail.com
status : online
--------------------------------------------------
Acct: 2
email : dfgg@fgfg.com
status : banned
--------------------------------------------------
Acct: 3
signedupname : SomeUsername
somethingelse : offline
--------------------------------------------------
Как видите, данные в основном случайные. Единственное, что остается неизменным - это -----
, разделяющий каждую запись, и Acct: 1
биты. Заполнение между :
часто меняется, как и переменная для представления каждого бита данных.
Я попытался разобрать все это самостоятельно, используя регулярные выражения, но, к счастью, я недостаточно квалифицирован, чтобы уметь делать это правильно В конце этого я хочу данные в соответствии со следующим:
Acct: <integer>
var1: <string>
var2: <string>
Если это вообще имеет смысл. Он не должен быть таким эффективным, так как мне нужно будет делать это примерно раз в день, и я не против ждать, сколько ему потребуется.
Спасибо. :)
Редактировать: Это то, что я сделал самостоятельно:
<?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:
, но ничего кроме этого я просто не могу понять.