X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Furl_parser.php;h=29de29332f9f3fcd976b71fa70eda15844864cc5;hb=76e6ff644da9490671c2142a042165730ea6c0ea;hp=a34631437f5a71314ff9b969243229bb4639be10;hpb=14a1d0be788f34471e9942b5a3341808fc646f4c;p=squirrelmail.git diff --git a/functions/url_parser.php b/functions/url_parser.php index a3463143..29de2933 100644 --- a/functions/url_parser.php +++ b/functions/url_parser.php @@ -27,7 +27,7 @@ $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[0-9]|_|-)+)*", "\\0", $body); } */ - $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[0-9]|_|-)+)*", "\\0", $body); + $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[A-Z])|[a-z]|[0-9]|_|-)+", "\\0", $body); return $body; } @@ -35,7 +35,7 @@ #Possible ways a URL could finish. $poss_ends=array(" ", "\n", "\r", "<", ">", ".\r", ".\n", ". ", " ", ")", "(", - """, "<", ">", ".<"); + """, "<", ">", ".<", "]", "[", "{", "}", "--"); $done=False; while (!$done) { #Look for when a URL starts @@ -45,11 +45,12 @@ "ftp://", "telnet://"); for($i = 0; $i < sizeof($url_tokens); $i++) { - if($where = strpos(strtolower($body), $url_tokens[$i], $start)) + if($where = strpos(strtolower("^^".$body), $url_tokens[$i], $start)) break; } //$where = strpos(strtolower($body),"http://",$start); if ($where) { + $where = $where - 2; // because we added the ^^ at the begining # Find the end of that URL reset($poss_ends); $end=0; while (list($key, $val) = each($poss_ends)) {