質問: mb_ereg_replace("(https?|ftp)(://[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","[\\0", $string); return $new_str; } 具体的には、crelink() で生成した href="http://hoge.com?id=123" の部分でも editurl() が実行されてしまい、 [http://hoge.com?id=123"](リンク456 というふうに出力されてしまいます。 文中に入力されたurl部分をリンクに置き換えつつ、 [[link(http://hoge.com?id=123):リンク456]] のように記述されている個所を リンク456 と置き換えるには、どうしたら良いでしょうか?
回答: no.1の方とほぼ同じですが... editurl()を [[link(http://hoge.com?id=123): http://hoge.com?id=123]] と置き換えるものに変更。 editurl()'→crelink()の順番で実行。 と、私ならします。