2014-03-30 65 views
0

我有一個文件的結構是這樣的: http://pastebin.com/dvja3YkT 我的目標是小組後得到的文本:,因爲我有以下的用戶名:我試着爆炸這樣的 :如何爆炸棘手的文件

$boom = explode($open, "$user"); 

其中$ open是一個很好的file_get_contents,$ user是一個用戶名。 當我使用$ boom [0]時,它輸出我正在尋找的用戶,但是當我嘗試$ boom [1]時,它表示注意:未定義偏移量:1. 有沒有任何方法可以在

之後獲得組名稱
group: 

,如果我知道

Users: 
    Username: 

下的用戶名?

PS:我忘了提,該文件將不斷更新,所以我需要一個方法來獲取用戶的組,如果他是在列表中,否則我給他發一條錯誤消息

+0

可能重複http://stackoverflow.com/questions/294355/php-yaml -parsers) – pduersteler

回答

0

你傳遞的參數錯誤的順序爆炸的字符串,它應該是

$boom = explode("$user", $open); 

反正這裏是一個簡單的代碼得到的組[PHP YAML解析器(的

$boom = explode("$user:", $open); 
$boom = explode("group: ", $boom[1]); 
$boom = explode("\n", $boom[1]); 
echo $boom[0]; 

http://ideone.com/DPvrVj

+0

謝謝,它工作!如果用戶不在列表中,你知道如何發送錯誤信息嗎?如果(!$ boom){echo「message」; }將返回一條消息,但也通知 – Joe96

+0

@ user3025008嘗試'if(count($ boom)== 1){echo「message」; }' – Musa

1

您可以使用下面的正則表達式

$input_lines是文件

preg_match_all("/group:(.*)$/m", $input_lines, $output_array); 

$output_array = 

Array 
(
    [0] => Array 
     (
      [0] => group: Builder 
      [1] => group: Owner 
      [2] => group: Owner 
      [3] => group: Moderator 
      [4] => group: VIP 
      [5] => group: Moderator 
      [6] => group: Admin 
      [7] => group: Builder 
      [8] => group: Co-Owner 
      [9] => group: VIP 
     ) 

    [1] => Array 
     (
      [0] => Builder 
      [1] => Owner 
      [2] => Owner 
      [3] => Moderator 
      [4] => VIP 
      [5] => Moderator 
      [6] => Admin 
      [7] => Builder 
      [8] => Co-Owner 
      [9] => VIP 
     )