/**
* Make links in the text clickable
* 2010/07/06 Y.Sakai change pattern for japanese char
* @param string $text
* @return string
**/
function &makeClickable(&$text)
{
// $patterns[] = "/(^|[^]_a-z0-9-=\"'\/])([a-z]+?):\/\/([^, \r\n\"\(\)'<>]+)/i";
// $replacements[] = "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>";
$patterns[] = "/(^|[^]_a-z0-9-=\"'\/])([a-z]+?):\/\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/i";
$replacements[] = "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>";
$patterns[] = "/(^|[^]_a-z0-9-=\"'\/])www\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i";
$replacements[] = "\\1<a href=\"http://www.\\2.\\3\" target=\"_blank\">www.\\2.\\3</a>";
$patterns[] = "/(^|[^]_a-z0-9-=\"'\/])ftp\.([a-z0-9\-]+)\.([^, \r\n\"\(\)'<>]+)/i";
$replacements[] = "\\1<a href=\"ftp://ftp.\\2.\\3\" target=\"_blank\">ftp.\\2.\\3</a>";
$patterns[] = "/(^|[^]_a-z0-9-=\"'\/:\.])([a-z0-9\-_\.]+?)@([a-z0-9!#\$%&'\*\+\-\/=\?^_\`{\|}~\.]+)/i";
$replacements[] = "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>";
return preg_replace($patterns, $replacements, $text);
}
2011年2月9日水曜日
module.textsanitizer.php 日本語のクリッカブルリンクでHTMLが壊れる件
XOOPS Cube 2.1.8 のコアの話ですが、日本語混じりだとHTMLが壊れる事があります。こんな感じで、正規表現を変えます。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿