function makeClickable(&$text) { $valid_chars = "a-z0-9\/\-_+=.~!%@?#&;:$\|"; $valid_chars2 = "a-z0-9\/\-_+=.~!%@?#&;:$\|\'\"<> "; $i = explode("//", XOOPS_URL); $patterns = array( "/(^|[^]_a-z0-9-=\"'\/])([a-z]+?):\/\/([{$valid_chars}]+)/ei", "/(^|[^]_a-z0-9-=\"'\/])www\.([a-z0-9\-]+)\.([{$valid_chars}]+)/ei", "/(^|[^]_a-z0-9-=\"'\/])ftp\.([a-z0-9\-]+)\.([{$valid_chars}]+)/ei", "/(^|[^]_a-z0-9-=\"'\/:\.])([a-z0-9\-_\.]+?)@([{$valid_chars}]+)/ei", "/()()/i", "/()()/i", "/()()/i"); $replacements = array( "'\\1\\2://'.MyTextSanitizer::truncate( '\\3' ).''", "'\\1'.MyTextSanitizer::truncate( 'www.\\2.\\3' ).''", "'\\1'.MyTextSanitizer::truncate( 'ftp.\\2.\\3' ).''", "'\\1'.MyTextSanitizer::truncate( '\\2@\\3' ).''", "$2".$i[1]."$3$5", "$2".$i[1]."$3$5", "$2".$i[1]."$3$5"); return preg_replace($patterns, $replacements, $text); }