我使用这个小函数在需要时截断字符串:
function truncate_text($text,$nbrChar = 55,$append='...') {
if (strlen($text) > $nbrChar) {
$text = substr($text,$nbrChar);
$text .= $append;
}
return $text;
}
我想帮助创建一个新功能来截断电子邮件本地部分,类似于Google网上论坛中的内容.
abc...@gmail.com
这对使用Facebook代理电子邮件的用户特别有用.
apps+2189712.12457.7b00f3c9e8bfabbeea8f73@proxymail.facebook.com
我想这个新函数会使用正则表达式找到@然后将local-part截断为一定数量的字符以生成类似的东西
apps+21...@proxymail.facebook.com
有任何建议如何解决这个问题?
谢谢!
此函数将截断电子邮件的第一部分(如果找到@),如果找不到@则截断其他字符串.
function truncate_text($text,$append='...') {
if(strpos($text,'@') !== FALSE) {
$elem = explode('@',$text);
$elem[0] = substr($elem[0],$nbrChar) . $append;
return $elem[0] . '@' . $elem[1];
}
if (strlen($text) > $nbrChar) {
$text = substr($text,$nbrChar);
$text .= $append;
}
return $text;
}
echo truncate_text('apps+2189712.12457.7b00f3c9e8bfabbeea8f73@proxymail.facebook.com',10);
// will output : apps+21897...@proxymail.facebook.com
echo truncate_text('apps+2189712.12457.7b00f3c9e8bfabbeea8f73proxymail.facebook.com',10);
// will output : apps+21897...