我使用这个小函数在需要时截断字符串:
function truncate_text($text,$nbrChar = 55,$append='...') { if (strlen($text) > $nbrChar) { $text = substr($text,$nbrChar); $text .= $append; } return $text; }
我想帮助创建一个新功能来截断电子邮件本地部分,类似于Google网上论坛中的内容.
abc...@gmail.com
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...