$what", $oldaddr);
$body = str_replace ($oldaddr, "$newaddr", $body);
}
} else {
// Use the $Expression
$body = eregi_replace ($Expression, "\\0", $body);
}
*/
// Use the $Expression
$body = eregi_replace ($Expression, "\\0", $body);
return $body;
}
function parseUrl ($body) {
#Possible ways a URL could finish.
// Removed "--" since it could be part of a URL
$poss_ends=array(" ", "\n", "\r", "<", ">", ".\r", ".\n", ". ", " ", ")", "(",
""", "<", ">", ".<", "]", "[", "{", "}");
$done=False;
while (!$done) {
#Look for when a URL starts
// Added gopher, news. Modified telnet.
$url_tokens = array(
"http://",
"https://",
"ftp://",
"telnet:", // Special case -- doesn't need the slashes
"gopher://",
"news://");
for($i = 0; $i < sizeof($url_tokens); $i++) {
// Removed the use of "^^" -- it is unneeded
if(is_int($where = strpos(strtolower($body), $url_tokens[$i], $start)))
break;
}
// Look between $start and $where for email links
$check_str = substr($body, $start, $where);
$new_str = parseEmail($check_str);
if ($check_str != $new_str)
{
$body = replaceBlock($body, $new_str, $start, $where);
$where = strlen($new_str) + $start;
}
//$where = strpos(strtolower($body),"http://",$start);
// Fixed this to work with $i instead of $where
if ($i < sizeof($url_tokens)) {
// Removed the "^^" so I removed the next line
//$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)) {
$enda = strpos($body,$val,$where);
if ($end == 0) $end = $enda;
if ($enda < $end and $enda != 0) $end = $enda;
}
if (!$end) $end = strlen($body);
#Extract URL
$url = substr($body,$where,$end-$where);
#Replace URL with HyperLinked Url
// Now this code doesn't simply match on url_tokens
// It will need some more text. This is good.
if ($url != "" && $url != $url_tokens[$i]) {
$url_str = "$url";
# $body = str_replace($url,$url_str,$body);
# echo "$where, $end
";
$body = replaceBlock($body,$url_str,$where,$end);
// Removed unnecessary strpos call. Searching
// a string takes longer than just figuring out
// the length.
// $start = strpos($body,"",$where);
$start = $where + strlen($url_str);
} else {
// Proper length increment -- Don't just assume 7
$start = $where + strlen($url_tokens[$i]);
}
} else {
$done=true;
}
}
// Look after $start for more email links.
$check_str = substr($body, $start);
$new_str = parseEmail($check_str);
if ($check_str != $new_str)
{
$body = replaceBlock($body, $new_str, $start, strlen($body));
}
return $body;
}
?>