メッセージ内の URL を HTML リンクに変換する次のコードがあります。
$message = preg_replace("#(http|https|ftp|ftps)://([.]?[&;%=a-zA-Z0-9_/?-])*#",
"<a href=\"away?to=\\0\" target=\"_blank\">\\0</a>", $message);
$message = preg_replace("#(^| |\n)(www([.]?[&;%=a-zA-Z0-9_/?-])*)#",
"\\1<a href=\"away?to=http://\\2\" target=\"_blank\">\\2</a>", $message);
次の場合を除いて、ほとんどすべてのリンクで非常にうまく機能します。
1) http://example.com/mediathek#/video/1976914/zoom:-World-Wide
ここでの問題は、リンク内の#
とです。これは、完全なリンクが変換されるわけではないためです。:
2) If someone just writes "www" in a message
例:<a href="http://www">www</a>
質問は、上記のコードでこれら 2 つのケースを修正する方法があるかどうかです。