Преглед на файлове

Rewrote sqimap_find_displayable_name() to use regular expressions.
The parsing of the email address is far from perfect, and the regular
expressions need to be improved. This version of the function is
equivallent in functionality to the previous one.

antipode преди 23 години
родител
ревизия
7e3b895d92
променени са 1 файла, в които са добавени 11 реда и са изтрити 20 реда
  1. 11 20
      functions/imap_general.php

+ 11 - 20
functions/imap_general.php

@@ -341,28 +341,19 @@ function sqimap_find_email ($string) {
 *           becomes:   lkehresman@yahoo.com
 */
 function sqimap_find_displayable_name ($string) {
-    $string = ' '.trim($string);
-    $orig_string = $string;
-    if (($angle1 = strpos($string, '<')) && strpos($string, '>')) {
-        if ($angle1 == 1) {
-            $string = sqimap_find_email($string);
-        } else {
-            $string = trim($string);
-            $string = substr($string, 0, $angle1-1);
-            $string = ereg_replace ('"', '', $string);
-        }
-        
-        if (trim($string) == '') {
-            $string = sqimap_find_email($orig_string);
-        }
-    } else if ( ($paren1 = strpos($string, '('))
-                && ($paren2 = strpos($string, ')'))) {
-        $string = substr($string, $paren1 + 1, $paren2 - $paren1 - 1);
+    if ( ereg('^(.+)<.*>', $string, $regs) ) {
+        $string = ereg_replace ('"', '', $regs[1] );
+    }
+    elseif ( ereg('\((.*)\)', $string, $regs) ) {
+        $string = $regs[1];
+    }
+    else {
+        $string = sqimap_find_email($string);
     }
-    return $string;
-}
-
 
+    return trim($string);
+}
+    
 /*
 *  Returns the number of unseen messages in this folder
 */