2014-01-08 59 views
0

用戶名現在我的代碼:PHP的標籤系統,得到的只是來自@

$msgs = preg_replace('/(?<=^|\s)@([a-z0-9_]+)/i', '$1', $msg); 

假設

$msg = "@Admin Hello my friends"; 

代碼工作上面,但我需要得到公正的標籤的名字!我需要得到「管理員」,所有被標記的人。我怎麼做?

+0

preg_replace函數代碼時工作我需要使標記的人鏈接..所以這就是爲什麼我使用該代碼:) – Johan

回答

0

你可以這樣做:

$msgs = preg_replace('/(?<=^|\s)@(\w+).*$/', '$1', $msg); 

if (preg_match('/(?<=^|\s)@(\w+)/', $msg, $match)) { 
    $msgs = $match[1]; 
} 

如果你可以在一個單一的線以上的@,使用preg_match_all

preg_match_all('/(?<=^|\s)@(\w+)/', $msg, $match) 
+0

謝謝!它的工作原理:)但你知道我怎麼能擺脫所有標籤的人嗎?如果我標記兩個人也許?我需要在「while」/「loop」 – Johan

+0

@Johan:我不明白你的意思,你說一行中有多個'@'?或者你是否從文件中讀取所有內容?用示例相應地更新你的問題。 – Toto

+0

$ msg =「@Admin @Webmaster您好!」; 就這樣!我需要退出管理員和網站管理員..這只是一個字符串/行 – Johan