2012-02-15 6 views
0

さえずりが持っているように私は、「タグ付け」システムを使用するには、このコードを使用しています:2次がある場合に@usernameをし、それが自分のプロフィールにに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

例えば、それはプロファイルにそれらをリンクしますが、それはそれらの間のスペースを削除します。

ので、私は本当に私は上記のコードから/年代を削除しようとした、削除するのか分からないだろうが、それは全部

遺跡、私はそれが簡単に何かを知っているが、私はPHPにちょっと新たなんです

編集

私は完全なコードを公開しました。

+0

私はおそらくと何かがあります、問題が正規表現であるとは思わない –

+0

...私のためのスペースを削除しません出力部。 – iDifferent

+0

私は完全なコードを公開しました。 – Frank

答えて

0

私はあなたがアンカータグの後にスペースを追加することができると思います:あなたはグラム修飾子を指定しなかった原因定期の終わりに、それはすべての@usernamesをリンクないこと

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

完全なコードを公開しました。 – Frank

0

それは奇妙です表現。 gモディファイアはすべての発生を置き換えます。あなたが 2スペースで終了する必要がありますので、Lbuの答えは実際に1余分なスペースを追加する必要があります。

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

で練習するのに最適なウェブサイトがhttp://gskinner.com/RegExr/幸運です!:)

+0

私は完全なコードを公開しました。 – Frank

+0

@Rez、PCREは 'g'修飾子を理解しません。 'error_reporting'値を上げる必要があるかもしれません。このコードを使用すると、PHPから警告が表示されます。 – Charles