2014-10-28 22 views
0

我試圖解析PHP中的一些數據,但我不完全確定數據格式是什麼。它似乎是JSON的變體,但我不確定。嘗試從結構化格式的字符串中提取數據

下面是一個例子;

"kFj394" 
{ 
     "allow" 
     { 
     } 
     "name" "Bob" 
     "deny" 
     { 
     } 
     "group" "trusted" 
} 
"J883Dd" 
{ 
     "name" "Foo Bar" 
     "deny" 
     { 
     } 
     "allow" 
     { 
     } 
     "group" "regular" 
} 

我試圖從他們(在這個例子中kFj394J883Dd)ID

如果有誰知道我怎麼能做到這一點,甚至什麼樣的數據格式,這個得到的人的暱稱和組是的,我會很感激幫助。謝謝。

+0

我不確定,但它看起來像json。 – HddnTHA 2014-10-28 15:44:31

+0

這完全不是json。您可以使用正則表達式來獲取這些數據,但這不會很簡單。這些數據根本不符合任何標準。 – Jerodev 2014-10-28 15:45:15

+0

它從哪裏來的數據?這是數據的原始狀態嗎? – 2014-10-28 15:46:30

回答

1

我不知道你的格式是什麼。這絕對不是JSON。正則表達式可能是你唯一的鏡頭:

$block = ''; // The text you pasted goes here. 

foreach (['kFj394', 'J883Dd'] as $id) { 
    $nameSearchPattern = '/"' . $id . '"[\n\t\s\w{}"]*?name"\s+"(.+)"/'; 
    $groupSearchPattern = '/"' . $id . '"[\n\t\s\w{}"]*?group"\s+"(.+)"/'; 
    preg_match($nameSearchPattern, $block, $nameMatches); 
    preg_match($groupSearchPattern, $block, $groupMatches); 
    $name = $nameMatches[1]; 
    $group = $groupMatches[1]; 
    echo "The name for $id is $name\n"; 
    echo "The group for $id is $group\n"; 
} 
+0

所以你奇蹟般地猜出了ID,他試圖從數據中獲取並循環播放它們? – NDM 2014-10-28 16:15:05

+0

從這個問題的措辭,它聽起來像ID是一個給定的: 「我試圖從他們的ID(kFj394和J883Dd在這個例子中)的人的暱稱和組」 – joehart 2014-10-28 16:22:43

+0

是啊,我有身份證,並希望排名和暱稱。感謝代碼,@joehart完美工作:) – Joseph 2014-10-28 17:11:05

相關問題