2012-02-15 90 views
0

我使用此代碼使用一個「標籤」系統,類似Twitter的:@用戶名,它會連接起來,他們的個人資料的preg_replace去掉空格太

preg_replace("/@(\w+)/", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a>', ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"http://assets.buddyweb.me/scripts/run_link.php?url=\\0\" target=\"_blank\" class = \"user_created_link\" title = \"External Link\">\\0</a>", $original)); 

它可以找到,但如果有兩個未來給對方,如:

@someone @else

將它們連接起來,配置文件,但它消除它們之間的空間,如:

@[email protected]

我知道這件事情很容易,但我有點新的PHP的,所以我就真的不知道怎麼刪除,我試着從上面的代碼去除/的但破壞了整個事情

編輯

我已經發表完整的代碼。

+0

如果不刪除這些空間對我來說... – 2012-02-15 17:54:44

+0

我不認爲這個問題是在正則表達式,可能有一些與輸出部分。 – iDifferent 2012-02-15 18:01:57

+0

我已經發布完整的代碼。 – Frank 2012-02-15 18:13:12

回答

0

我想你可以錨標記後添加一個空格:在正規的結束

preg_replace("/@(\w+)/", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a> ',$string) 
+0

我已經發布完整的代碼。 – Frank 2012-02-15 18:13:36

0

很奇怪,它並連接所有@使用者名稱,因爲你沒有指定修改表達。 g修飾符將取代所有的出現。 Lbu的回答實際上應該增加1個額外的空間,所以你應該結束了2個空格。

preg_replace("/@(\w+)/g", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a>',$string) 

一個偉大的網站與實踐爲http://gskinner.com/RegExr/祝你好運!:)

+0

我已經發布完整的代碼。 – Frank 2012-02-15 18:13:26

+0

@Rez,PCRE不理解'g'修飾符。你可能需要把你的'error_reporting'值加起來。當您使用此代碼時,PHP應該爲您發出警告。 – Charles 2012-02-15 19:23:36