この関数は文字列からリンクを作成しますが、問題は、すでにリンクがある場合、機能しないことです。たとえば、「私はリンクです」」ですが、「私はリンクhttp://www.google.com」で動作します。何か案が?
function checkStringForLinks($string)
{
/*** make sure there is an http:// on all URLs ***/
//$string = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$string);
/*** make all URLs links ***/
$string = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a target=\"_blank\" href=\"$1\">$1</A>",$string);
/*** make all emails hot links ***/
//$string = preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<A HREF=\"mailto:$1\">$1</A>",$string);
return $string;
}
おっと、タイプが間違っています。つまり、\anchor\link\anchor\ に触れたくありません。形成されていないリンクのみです。