私のアプリにはFacebookのような言及機能があります。
投稿やコメントを作成するとき、ユーザーは@記号で他のユーザーに言及できます。私は次のjQueryプラグインを使用しています:http://podio.github.com/jquery-mentions-input/
メンションは次の形式で生成されます:@@ [Marko Kurjonen:2] so "@@ [User's name:user_id]
現在、私は次のパターン(およびコード)を持っています:
$pattern = "/@@\[(.*):(\d*)] /ims";
$matches = array();
preg_match_all($pattern, $input, $matches);
Zend_Debug::dump($matches);
$output = preg_replace($pattern, "<a href=\"". $this->view->baseUrl("user") ."/$2\" class=\"tooltip\">$1</a>", $input);
問題は、最初の言及しか行わないことです。
文字列の例:
$input = "Hello @@[Markku Pelkonen:7] and @@[Marko Kurjonen:2]"
最初のユーザーのみがpreg_replaceによって変換されます。
br、マルコ