需求

把生成的消费码,在页面显示的时候按照数字四个一组,方便客户查看记录,类似银行卡号。

实现

添加一个 StringHelper.php 文件,代码如下:

/**

* author : forecho

* createTime : 2016/3/30 16:47

* description:

*/

namespace common\helpers;

class StringHelper

{

/**

* 返回银行卡类似的格式

* @param $cc

* @param bool $hide 是否隐藏中间信息

* @return string

*/

public static function formatCreditCard($cc, $hide = true)

{

// REMOVE EXTRA DATA IF ANY

$cc = str_replace(array('-', ' '), '', $cc);

// GET THE CREDIT CARD LENGTH

$cc_length = strlen($cc);

$newCreditCard = substr($cc, -4);

for ($i = $cc_length - 5; $i >= 0; $i--) {

// ADDS HYPHEN HERE

if ((($i + 1) - $cc_length) % 4 == 0) {

$newCreditCard = '-' . $newCreditCard;

}

$newCreditCard = $cc[$i] . $newCreditCard;

}

// REPLACE CHARACTERS WITH X EXCEPT FIRST FOUR AND LAST FOUR

if ($hide) {

for ($i = 4; $i < $cc_length - 4; $i++) {

if ($newCreditCard[$i] == '-') {

continue;

}

$newCreditCard[$i] = 'X';

}

}

// RETURN THE FINAL FORMATED AND MASKED CREDIT CARD NO

return $newCreditCard;

}

}

使用

echo StringHelper::formatCreditCard(1458036146950059, false);

// 返回结果是 1458-0361-4695-0059

你还可以在 Model 里面设置 fields() 这样就可以统一返回数据的格式,在具体的 Model 文件里面添加如下代码:

public function fields()

{

$fields = parent::fields();

$fields['code'] = function ($model) {

return StringHelper::formatCreditCard($model->code, false);

};

return $fields;

}

参考链接:

本文由 caicai 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。

可自由转载、引用,但需署名作者且注明文章出处。

php 格式化银行卡,PHP 格式化数字返回银行卡号码相关推荐

  1. js根据银行卡号判断属于哪个银行并返回银行卡类型

    js校验银行卡号校验银行卡类型及开户行 校验方法 //根据情景自行处理代码checkAccountNumberFn(event) {var that = this;let bankCode = thi ...

  2. C语言基础:格式化输出带符号的数字的代码

    将开发过程中较好的代码备份一次,如下的代码段是关于C语言基础:格式化输出带符号的数字的代码,应该对各朋友有较大用处. #include <stdio.h>int main (){int i ...

  3. lrc格式歌词格式化处理函数封装,返回对象数组

    lrc格式歌词格式化处理函数封装,返回对象数组 函数 /*** lrc格式歌词格式化 * @param { STRING } lrc lrc格式歌词* @return { ARRAY } 返回对象数组 ...

  4. c语言中json格式化输出,JSON格式化输出

    JSON格式化输出 今天有个需求是对输出的JSON进行格式化 首先想到的就是jsBeautifier之类的小插件 搜索了一番看到有一位朋友回答JSON.stringify可以输出格式化的JSON字符串 ...

  5. python整数格式化表达式_Python字符串格式化表达式和格式化方法

    Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...

  6. 2t移动硬盘linux无法格式化,移动硬盘无法格式化怎么办实际解决方法

    使用移动硬盘的时候,如果使用不当的话,就会引发各种奇怪的问题,其中最严重的的就是提示需要格式化,而点击格式化又无法格式化的问题,这时候怎么办呢?遇到这种情况不要慌,首选我们要排查一下问题的所在. 原因 ...

  7. android 银行卡绑定银行卡,一种基于Android、iOS系统的移动端银行卡识别方法,让银行卡绑定这一行为变得更轻松...

    迅猛发展的移动互联网产业,类似手机支付宝的移动商业应用琳琅满目,网络购物.理财.商旅应用.打车软件等的兴起,让用户的习惯开始慢慢倾斜,移动支付的场景也愈加丰富起来,给人们带来了丰富多彩且方便快捷的数字 ...

  8. vue 中格式化时间 过滤器格式化时间

    vue 中格式化时间 过滤器格式化时间 data.js 格式化方法使用 * // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s) ...

  9. C# 字符串格式化_C# 字符串格式化整理

    一.C# 字符串格式化_C# 字符串格式化整理 使用方式1:  xxx.ToString(xxxx) 使用方式2:string.Format(xxxx,xxx)  1.占位符格式化 零占位符:固定位数 ...

最新文章

  1. linux arm gcc 内联汇编参考手册
  2. 小程序之图片懒加载[完美方案,你不来看看?]
  3. 第六章 设计程序架构 之 设计实现WebSocket策略
  4. linux训练python出现killed_Linux 查看进程被杀死的详情
  5. saltstack自动化运维系列②之saltstack的数据系统
  6. 二维高斯滤波器(gauss filter)的实现
  7. spine纹理解包 黑底_本期全欧美阵容!种草了艾玛罗的斑马纹,海狸的针织Bra【海报街拍】...
  8. LeetCode Week 6:第 51 ~ 55 题
  9. c语言打字游戏程序设计报告,2016打字游戏程序设计报告.doc
  10. rms 公式 有效值_有效值、真有效值、基波有效值、全有效值概念辨析
  11. 3---IO流练习题库
  12. 2分钟完美激活Windows7旗舰版
  13. openwrt怎么做ap_openwrt 添加 无线AP
  14. 手机对红外探头发送数据和接受
  15. Python3 编程第一弹 斐波纳契数列
  16. 一手掌控美食新鲜“灵魂”且融汇到生活的方方面面
  17. 部署 GlusterFS 群集
  18. 哪个计算机无法做到双屏显示,显卡为何无法实现双屏显示 -电脑资料
  19. 互联网产品设计进阶(14)多一点设计,少一点代码
  20. (学习向)大数除法(余数,小数)

热门文章

  1. spm12预处理步骤及知识点总结
  2. Altium Designer原理图转OrCAD原理图方法
  3. 2020 社招 JAVA面试题总结
  4. Java虚拟机这一块 —— JVM 调优和深入了解性能优化
  5. 线性代数之向量间线性关系
  6. Python-OpenCV图像处理(二):模糊操作
  7. 经验解答:计算机专业是什么?这个专业的大学生以后能干嘛?
  8. Unity3D开发工程师
  9. 国家二级计算机office知识点,2017年全国计算机二级office常见知识点
  10. requirejs技术