$what", $oldaddr); * $body = str_replace ($oldaddr, "$newaddr", $body); * } * } else { * $body = eregi_replace ($Email_RegExp_Match, "\\0", $body); * } */ if( eregi($Email_RegExp_Match, $body, $regs) ) { $body = str_replace($regs[0], ''.$regs[0].'', $body); } /* If there are any changes, it'll just get bigger. */ if ($Size != strlen($body)) { return 1; } return 0; } /* 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://'); global $url_parser_poss_ends; $url_parser_poss_ends = array(' ', "\n", "\r", '<', '>', ".\r", ".\n", '. ', ' ', ')', '(', '"', '<', '>', '.<', ']', '[', '{', '}', "\240", ', ', '. ', ",\n", ",\r"); function parseUrl (&$body) { global $url_parser_poss_ends, $url_parser_url_tokens;; $start = 0; $target_pos = strlen($body); while ($start != $target_pos) { $target_token = ''; /* Find the first token to replace */ foreach ($url_parser_url_tokens as $the_token) { $pos = strpos(strtolower($body), $the_token, $start); if (is_int($pos) && $pos < $target_pos) { $target_pos = $pos; $target_token = $the_token; } } /* Look for email addresses between $start and $target_pos */ $check_str = substr($body, $start, $target_pos); if (parseEmail($check_str)) { replaceBlock($body, $check_str, $start, $target_pos); $target_pos = strlen($check_str) + $start; } /* If there was a token to replace, replace it */ if ($target_token != '') { /* Find the end of the URL */ $end=strlen($body); foreach ($url_parser_poss_ends as $key => $val) { $enda = strpos($body,$val,$target_pos); if (is_int($enda) && $enda < $end) { $end = $enda; } } /* Extract URL */ $url = substr($body, $target_pos, $end-$target_pos); /* Needed since lines are not passed with \n or \r */ while ( ereg("[,\.]$", $url) ) { $url = substr( $url, 0, -1 ); $end--; } /* Replace URL with HyperLinked Url, requires 1 char in link */ if ($url != '' && $url != $target_token) { $url_str = "$url"; replaceBlock($body,$url_str,$target_pos,$end); $target_pos += strlen($url_str); } else { // Not quite a valid link, skip ahead to next chance $target_pos += strlen($target_token); } } /* Move forward */ $start = $target_pos; $target_pos = strlen($body); } } ?>