X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Furl_parser.php;h=2fb2d3a67450725354f0384b08b6023a9fea1257;hb=8cd3f6dae1b23eeb8656604cf759d28663601e93;hp=53c18a24011fd6698164c48a4d9c8eb0879cf23f;hpb=9eea179c055de6dcddf7b326818a9b522bdf96e6;p=squirrelmail.git diff --git a/functions/url_parser.php b/functions/url_parser.php index 53c18a24..2fb2d3a6 100644 --- a/functions/url_parser.php +++ b/functions/url_parser.php @@ -1,49 +1,54 @@ $what", $oldaddr); $body = str_replace ($oldaddr, "$newaddr", $body); } } else { - $body = eregi_replace ($Expression, "\\0", $body); + $body = eregi_replace ($Email_RegExp_Match, "\\0", $body); } */ - $body = eregi_replace ($Expression, "\\0", $body); + $body = eregi_replace ($Email_RegExp_Match, "\\0", $body); // If there are any changes, it'll just get bigger. if ($Size != strlen($body)) @@ -52,20 +57,26 @@ } - function parseUrl (&$body) - { - $url_tokens = array( - 'http://', - 'https://', - 'ftp://', - 'telnet:', // Special case -- doesn't need the slashes - 'gopher://', - 'news://'); + // We don't want to re-initialize this stuff for every line. Save work + // and just do it once here. + global $url_parser_url_tokens; + $url_parser_url_tokens = array( + 'http://', + 'https://', + 'ftp://', + 'telnet:', // Special case -- doesn't need the slashes + 'gopher://', + 'news://'); - $poss_ends = array(' ', '\n', '\r', '<', '>', '.\r', '.\n', '. ', - ' ', ')', '(', '"', '<', '>', '.<', ']', '[', '{', - '}', "\240"); + global $url_parser_poss_ends; + $url_parser_poss_ends = array(' ', "\n", "\r", '<', '>', ".\r", ".\n", + '. ', ' ', ')', '(', '"', '<', '>', '.<', + ']', '[', '{', '}', "\240"); + + function parseUrl (&$body) + { + global $url_parser_poss_ends, $url_parser_url_tokens;; $start = 0; $target_pos = strlen($body); @@ -74,7 +85,7 @@ $target_token = ''; // Find the first token to replace - foreach ($url_tokens as $the_token) + foreach ($url_parser_url_tokens as $the_token) { $pos = strpos(strtolower($body), $the_token, $start); if (is_int($pos) && $pos < $target_pos) @@ -89,7 +100,7 @@ if (parseEmail($check_str)) { - $body = replaceBlock($body, $check_str, $start, $target_pos); + replaceBlock($body, $check_str, $start, $target_pos); $target_pos = strlen($check_str) + $start; } @@ -98,7 +109,7 @@ { // Find the end of the URL $end=strlen($body); - foreach ($poss_ends as $key => $val) + foreach ($url_parser_poss_ends as $key => $val) { $enda = strpos($body,$val,$target_pos); if (is_int($enda) && $enda < $end) @@ -112,7 +123,7 @@ if ($url != '' && $url != $target_token) { $url_str = "$url"; - $body = replaceBlock($body,$url_str,$target_pos,$end); + replaceBlock($body,$url_str,$target_pos,$end); $target_pos += strlen($url_str); } else