diff --git a/lib/util.php b/lib/util.php index 330e5d12d7..35a9d0bd4f 100644 --- a/lib/util.php +++ b/lib/util.php @@ -394,7 +394,21 @@ function common_render_text($text) function common_replace_urls_callback($text, $callback) { // Start off with a regex - preg_match_all('#(?:(?:(?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://|(?:mailto|aim|tel):)[^.\s]+\.[^\s]+|(?:[^.\s/]+\.)+(?:museum|travel|[a-z]{2,4})(?:[:/][^\s]*)?)#i', $text, $matches); + $regex = '# + (?: + (?: + (?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc):// + | + (?:mailto|aim|tel): + ) + [^.\s]+\.[^\s]+ + | + (?:[^.\s/:]+\.)+ + (?:museum|travel|[a-z]{2,4}) + (?:[:/][^\s]*)? + ) + #ix'; + preg_match_all($regex, $text, $matches); // Then clean up what the regex left behind $offset = 0;