2011-10-29 13 views
6

Io uso questa piccola funzione per troncare le stringhe in caso di necessità:Come troncare una parte locale e-mail a 'abc ... @ gmail.com'

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

vorrei un aiuto per creare una nuova funzione per troncare le e-mail locali come in Google Gruppi.

[email protected] 

Questo sarebbe particolarmente utile per gli utenti che utilizzano l'e-mail proxy di Facebook.

[email protected] 

immagino questa nuova funzione userebbe regex di trovare la @ e poi troncare la parte locale di un certo numero di caratteri per generare qualcosa come

[email protected] 

Eventuali suggerimenti su come affrontare questo?

Grazie!

risposta

11

Questa funzione troncherà la prima parte dell'email (se si trova @) e un'altra stringa se @ non è stata trovata.

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

bello ... come "esplodere" invece di usare regex - fammi provare questo - thx per l'input – pepe

Problemi correlati