Wrong version commited last time :P
[squirrelmail.git] / functions / url_parser.php
index 4049bc166f865d3b30f4c3da28e72cc93c0944f6..cc0accca1f8d0769d2fa6e2f5a95697e1d661004 100644 (file)
@@ -1,4 +1,4 @@
-<?
+<?php
    /* URL Passing code to allow links from with in emails */
 
    $url_parser_php = true;
    }
 
    function parseEmail ($body) {
-      global $PHPSESSID;
-      $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_)+(\.([a-z]|[0-9]|_)+)*", "<a href=\"../src/compose.php?PHPSESSID=$PHPSESSID&send_to=\\0\">\\0</a>", $body);
+      $body = eregi_replace ("([a-z]|[0-9]|_|\.|-)+\@([a-z]|[0-9]|_|-)+(\.([a-z]|[0-9]|_|-)+)*", "<a href=\"../src/compose.php?send_to=\\0\">\\0</a>", $body);
       return $body;
    }
 
    function parseUrl ($body) {
       #Possible ways a URL could finish.
 
-      $poss_ends=array(" ","\n","\r","<",".&nbsp","&nbsp");
+      $poss_ends=array(" ", "\n", "\r", "<", ">", ".\r", ".\n", ".&nbsp", "&nbsp", ")", "(","&quot");
       $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) {
             # Find the end of that URL
             reset($poss_ends); $end=0;