X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Furl_parser.php;h=29de29332f9f3fcd976b71fa70eda15844864cc5;hb=76e6ff644da9490671c2142a042165730ea6c0ea;hp=bcb5f7b91d113677d7ab93a6e7f086f127fe313a;hpb=3806fa52f70c5cb6f923957f7a1c2e0e867d0fdf;p=squirrelmail.git
diff --git a/functions/url_parser.php b/functions/url_parser.php
index bcb5f7b9..29de2933 100644
--- a/functions/url_parser.php
+++ b/functions/url_parser.php
@@ -11,19 +11,46 @@
}
function parseEmail ($body) {
- $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[0-9]|_|-)+)*", "\\0", $body);
+ global $color;
+ /*
+ This is here in case we ever decide to use highlighting of searched
+ text. this does it for email addresses
+
+ if ($what && ($where == "BODY" || $where == "TEXT")) {
+ eregi ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[0-9]|_|-)+)*", $body, $regs);
+ $oldaddr = $regs[0];
+ if ($oldaddr) {
+ $newaddr = eregi_replace ($what, "$what", $oldaddr);
+ $body = str_replace ($oldaddr, "$newaddr", $body);
+ }
+ } else {
+ $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;
}
function parseUrl ($body) {
#Possible ways a URL could finish.
- $poss_ends=array(" ", "\n", "\r", "<", ">", ".\r", ".\n", ". ", " ", ")", "(");
+ $poss_ends=array(" ", "\n", "\r", "<", ">", ".\r", ".\n", ". ", " ", ")", "(",
+ """, "<", ">", ".<", "]", "[", "{", "}", "--");
$done=False;
while (!$done) {
#Look for when a URL starts
- $where = strpos($body,"http:",$start);
+ $url_tokens = array(
+ "http://",
+ "https://",
+ "ftp://",
+ "telnet://");
+ for($i = 0; $i < sizeof($url_tokens); $i++) {
+ 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)) {
@@ -31,12 +58,14 @@
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
if ($url != "") {
$url_str = "$url";
# $body = str_replace($url,$url_str,$body);
+ # echo "$where, $end
";
$body = replaceBlock($body,$url_str,$where,$end);
$start = strpos($body,"",$where);
} else {