2011-10-29 10 views
6

: Biraz yardım istiyorumiçin 'abc ... @ gmail.com' gerektiğinde ipleri kesmek için bu küçük işlevi kullanmak

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

yeni bir fonksiyon oluşturmak için Google Gruplarında yapılanlara benzer yerel e-postaları kırpmak için.

[email protected] 

Bu özellikle, Facebook'un vekil e-postasını kullanan kullanıcılar için yararlı olur.

[email protected] 

Bu yeni işlev

[email protected] 

Herhangi önerileri nasıl bu mücadele için böyle bir şey üretmek için karakter belirli sayıda yerel kısımlarının kesmek sonra @ bulmak için normal ifadeler kullanabilirsiniz ve sanırım?

Teşekkürler!

cevap

11

Bu işlev, e-postanın ilk bölümünü (@ öğesi bulunuyorsa) ve @ dizisi bulunamazsa diğer dizgiyi kesecektir.

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 ... "regex kullanmak yerine" explode "gibi - şunu deneyeyim - giriş için thx – pepe