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