2012-12-08 17 views
0

好吧,我正在研究一個flatfile留言框,並試圖實現從flatfile獲取用戶名並將其變爲變量的方式,以便我可以使用它來創建一個調用數據庫來檢查用戶是否是管理員,以便他們可以直接從喊話器中刪除/禁止用戶。使用文本文件的特定部分創建值

這是簡單文件

<div><i><div class='date'>12/08/2012 18:56 pm&nbsp;&nbsp;</div></i> <div class='groupAdmin'><b>Admin</b></div><b><a href='javascript:;' onclick="shout_insert('@kira423- ')">kira423</a>:</b> hiya :D</div> 

因此,我想利用的用戶名,其在這種情況下kira423和創建這樣的變量作爲$shoutname,並使其等於kira423

我曾嘗試的例子線谷歌搜索和環顧四周,但無法找到答案,所以我希望我可以得到一些見解如何做到這一點與我自己在這裏的問題。

感謝,

基拉

回答

1

您應該使用preg_match像這樣的任務:

preg_match_all('|<div class=\'date\'>(?P<date>.*?)&nbsp;.*<a.*>(?P<user>.*)</a>|i', $data, $matches); 
var_dump($matches); 

通過所有的數組元素作用中:

foreach ($matches['user'] as $key => $user) { 
    var_dump($user); 
} 
+0

我把線從你上面的例子。確保它恰好是一條線。 –

+0

好吧,如果有多行用不同的用戶名,那麼這將無法正常工作? – kira423

+0

正則表達式僅適用於單行。您可以添加'g'修飾符或使用'preg_match_all',如果有幫助的話,但我建議您逐行閱讀您的平面文件。 –

1

我想你應該分析在平面文件的HTML每行(有使用簡單的HTML標記),只需在PHP Parse HTML code(或鍵入「PHP解析HTML」之類描述在谷歌)。然後你可以從數組或其他任何地方訪問用戶名(kira123)。

PS HTML不是存儲要顯示消息的最佳方式。即使CSV似乎更好 - 它會是「kira123;日期;一些文本」 - 它更容易閱讀和訪問每個部分。顯示時,請使用標準修飾器模式。