2011-10-29 12 views
6

utilizo esta pequeña función para truncar cadenas cuando sea necesario:Cómo truncar un correo electrónico a parte-local 'abc ... @ gmail.com'

function truncate_text($text, $nbrChar = 55, $append='...') { 
    if (strlen($text) > $nbrChar) { 
     $text = substr($text, 0, $nbrChar); 
     $text .= $append; 
    } 
    return $text; 
} 

me gustaría un poco de ayuda para crear una nueva función truncar partes locales de correo electrónico similares a lo que se hace en Grupos de Google.

[email protected] 

Esto sería especialmente útil para los usuarios que utilizan el correo proxy de Facebook.

[email protected] 

supongo que esta nueva función sería utilizar expresiones regulares para encontrar el @ y luego truncar la parte local a un determinado número de caracteres para generar algo así como

[email protected] 

Alguna sugerencia de cómo hacer frente a esto?

Gracias!

Respuesta

11

Esta función truncará la primera parte del correo electrónico (si se encuentra @) y otra cadena si @ no se encuentra.

function truncate_text($text, $nbrChar = 55, $append='...') { 
    if(strpos($text, '@') !== FALSE) { 
    $elem = explode('@', $text); 
    $elem[0] = substr($elem[0], 0, $nbrChar) . $append; 
    return $elem[0] . '@' . $elem[1]; 
    } 
    if (strlen($text) > $nbrChar) { 
    $text = substr($text, 0, $nbrChar); 
    $text .= $append; 
    } 
    return $text; 
} 

echo truncate_text('[email protected]', 10); 
// will output : [email protected] 

echo truncate_text('apps+2189712.12457.7b00f3c9e8bfabbeea8f73proxymail.facebook.com', 10); 
// will output : apps+21897... 
+2

nice ... como el 'explotar' en lugar de usar regex - déjame probar esto - thx para la entrada – pepe

Cuestiones relacionadas