PHP只显示姓名首尾字符,隐藏中间字符并用*替换

//测试时文件的编码方式要是UTF8
$str=‘中文a字1符‘;
echo strlen($str).‘<br>‘;//14
echo mb_strlen($str,‘utf8‘).‘<br>‘;//6
echo mb_strlen($str,‘gbk‘).‘<br>‘;//8
echo mb_strlen($str,‘gb2312‘).‘<br>‘;//10  
/**
 * 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)
 * @param string $user_name 姓名
 * @return string 格式化后的姓名
 */
function substr_cut($user_name){
    $strlen     = mb_strlen($user_name, ‘utf-8‘);
    $firstStr     = mb_substr($user_name, 0, 1, ‘utf-8‘);
    $lastStr     = mb_substr($user_name, -1, 1, ‘utf-8‘);
    return $strlen == 2 ? $firstStr . str_repeat(‘*‘, mb_strlen($user_name, ‘utf-8‘) - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
}
时间: 2024-12-21 21:15:39

PHP只显示姓名首尾字符,隐藏中间字符并用*替换的相关文章

Telnet客户端连接服务器,看不见字符,只显示横线

Telnet 窗口看不见字符,只显示小横线 在用telnet连接tomcat服务器的 时候,窗口中不显示字符,显示成一个一个的横线 解决办法: 按住“Ctrl+]” 回车解决问题

如何让div中的文字只显示一行,多余的文字隐藏并加上省略号(超链接形式)

写页面的时候遇到了一个小小的问题,如何让div中一行超链接文字只显示一行,多余的文字隐藏并加上省略号,悬浮时隐藏的文字显示出来?解决问题时发现了css3的一个新标签  text-overflow  ,其属性规定当文本溢出包含元素时发生的事情.语法如下: text-overflow: clip|ellipsis|string; 代码如下: <!DOCTYPE html><html><head><meta http-equiv="Content-Type&q

隐藏后重新显示 百度地图 ,地图显示不完整,只显示左上角一小部分

问题描述:我一个DIV1里,放了一个显示百度地图的mapDiv. 问题出现 了, 当初始化(第一次显示DIV1)时 ,可以 正常显示 地图, 当隐藏后 再 显示 时, 地图就 出错了,地图显示不完整,只显示左上角一小部分. jsp代码: <!-- 显示地图,获取经纬度    start --> <div id="mapModel" class="modal  fade " tabindex="-1" role="dia

只显示 前100个字 java 实现截取字符串!使用! &lt;c:if test=&quot;${fn:length(onebeans.info)&gt;100 }&quot;&gt;${ fn:substri

博客 文章 只显示 前100个字 java 实现截取字符串!使用! <c:if test="${fn:length(onebeans.info)>100 }">${ fn:substri http://blog.csdn.net/tfy1332/article/details/22811835 2014-04-02 17:14 3406人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. <%@ taglib prefix=&qu

fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)

转自:http://blog.csdn.net/notejs/article/details/49681479 Fiddler 有一个filters可以很好的帮助我们只显示我们关系的请求或者隐藏掉我们不关心的请求.这在开发中是非常有用的,尤其是你在这边想看请求,那边有程序或者网站在自动频繁发送求情,真的很烦.回想一下买票插件,是不是会在不停的刷,你在fiddler看东西就会很烦. 另外就是使用fiddler的时候我们几乎不会关心js和css请求,现在js越来越多的模块化了,在开发模式下往往会加载

HANA Studio中修改默认查询结果只显示1000行

成员变量 //由该流的创建者提供的 byte 数组. protected byte buf[]; //要从输入流缓冲区中读取的下一个字符的索引. protected int pos; //流中当前的标记位置. protected int mark = 0; //比输入流缓冲区中最后一个有效字符的索引大一的索引. protected int count; 构造参数 提供一个byte数组 public ByteArrayInputStream(byte buf[]) { this.buf = buf

JS使用cookie实现DIV提示框只显示一次的方法

本文实例讲述了JS使用cookie实现DIV提示框只显示一次的方法.分享给大家供大家参考,具体如下: 这里运用JavaScript的cookie技术,控制网页上的提示DIV只显示一次,也就是当用户是第一次打开网页的时候才显示,第二次自动隐藏起来,很好的提升了用户体验,不会使用户烦感:利用Cookies,我们还可做超多的事情,慢慢体会吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-cookie-div-dlg-show-once-cod

easyui的datebox只显示年月

要求点击easyui的datebox时只显示年月,隐藏日,之前百度了好多,发现有的好麻烦,有的使用没效果,也许自己没理解,改不了.最后老员工帮我搞定了,添加一个fomatter和一个parser函数就行. 当然我学习到的一点就是调试,之前只会用类似alert和console.info进行调试,然而这两种方法对easyui中的这种方法不奏效,比我我想知道parser中的function中的参数date值到底是什么,用这两种方法是没用的,用console.log(date);就可以看到date的值,

easyui datebox 只显示年月

在网上看了好多的js源码 点击12月份都会变成2017-0 这样的 调试后发现了问题,在此发修改后的方法 //只显示年月 function convertDatebox(domId) { $("#" + domId).datebox({ onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层 span.trigger('click'); //触发click事件弹出月份层 if (!tds) setTimeout(func