PHP bazı verileri ayrıştırma yardıma ihtiyacınız var

0 Cevap php

Ben PHP veri bu tür ayrıştırmak gerekiyor:

 Acct: 1 
 email       : bleh@gmail.com 
 status      : online 
 -------------------------------------------------- 

 Acct: 2 
 email       : dfgg@fgfg.com     
 status      : banned 
 -------------------------------------------------- 

 Acct: 3 
 signedupname  : SomeUsername     
 somethingelse  : offline 
 -------------------------------------------------- 

Gördüğünüz gibi verilerin büyük ölçüde rastgele. Aynı kalır tek şey -----, her giriş ve Acct: 1 bit ayırma. Her bir veri bit temsil etmek üzere değişken olduğu gibi her bir : arasındaki doldurma genellikle değişir.

Ben geçiyor ve regex kullanarak kendim tüm ayrıştırma denedim ama defenately düzgün yapabilmek için yeterince yetenekli değilim. Bunun sonunda ben aşağıdaki göre veri istiyorum:

Acct: <integer>
var1: <string>
var2: <string>

O hiç bir mantıklı eğer. Ben yaklaşık günde bir kez bunu yapmak gerekir gibi, bu effeciant olması gerekmez ve nasıl-hiç uzun ihtiyacı için bekleyen umursamıyorum.

Teşekkür ederim. :)

Düzenleme: Bu benim kendi üzerinde ne yaptım:

<?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;
}

?>

Ben kadar Acct: parçasını çıkarmak olarak var, ama bir şey bunun ötesinde ben sadece başımı alamıyorum.

0 Cevap