php 格式化银行卡,PHP 格式化数字返回银行卡号码
需求
把生成的消费码,在页面显示的时候按照数字四个一组,方便客户查看记录,类似银行卡号。
实现
添加一个 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 格式化数字返回银行卡号码相关推荐
- js根据银行卡号判断属于哪个银行并返回银行卡类型
js校验银行卡号校验银行卡类型及开户行 校验方法 //根据情景自行处理代码checkAccountNumberFn(event) {var that = this;let bankCode = thi ...
- C语言基础:格式化输出带符号的数字的代码
将开发过程中较好的代码备份一次,如下的代码段是关于C语言基础:格式化输出带符号的数字的代码,应该对各朋友有较大用处. #include <stdio.h>int main (){int i ...
- lrc格式歌词格式化处理函数封装,返回对象数组
lrc格式歌词格式化处理函数封装,返回对象数组 函数 /*** lrc格式歌词格式化 * @param { STRING } lrc lrc格式歌词* @return { ARRAY } 返回对象数组 ...
- c语言中json格式化输出,JSON格式化输出
JSON格式化输出 今天有个需求是对输出的JSON进行格式化 首先想到的就是jsBeautifier之类的小插件 搜索了一番看到有一位朋友回答JSON.stringify可以输出格式化的JSON字符串 ...
- python整数格式化表达式_Python字符串格式化表达式和格式化方法
Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...
- 2t移动硬盘linux无法格式化,移动硬盘无法格式化怎么办实际解决方法
使用移动硬盘的时候,如果使用不当的话,就会引发各种奇怪的问题,其中最严重的的就是提示需要格式化,而点击格式化又无法格式化的问题,这时候怎么办呢?遇到这种情况不要慌,首选我们要排查一下问题的所在. 原因 ...
- android 银行卡绑定银行卡,一种基于Android、iOS系统的移动端银行卡识别方法,让银行卡绑定这一行为变得更轻松...
迅猛发展的移动互联网产业,类似手机支付宝的移动商业应用琳琅满目,网络购物.理财.商旅应用.打车软件等的兴起,让用户的习惯开始慢慢倾斜,移动支付的场景也愈加丰富起来,给人们带来了丰富多彩且方便快捷的数字 ...
- vue 中格式化时间 过滤器格式化时间
vue 中格式化时间 过滤器格式化时间 data.js 格式化方法使用 * // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s) ...
- C# 字符串格式化_C# 字符串格式化整理
一.C# 字符串格式化_C# 字符串格式化整理 使用方式1: xxx.ToString(xxxx) 使用方式2:string.Format(xxxx,xxx) 1.占位符格式化 零占位符:固定位数 ...
最新文章
- linux arm gcc 内联汇编参考手册
- 小程序之图片懒加载[完美方案,你不来看看?]
- 第六章 设计程序架构 之 设计实现WebSocket策略
- linux训练python出现killed_Linux 查看进程被杀死的详情
- saltstack自动化运维系列②之saltstack的数据系统
- 二维高斯滤波器(gauss filter)的实现
- spine纹理解包 黑底_本期全欧美阵容!种草了艾玛罗的斑马纹,海狸的针织Bra【海报街拍】...
- LeetCode Week 6:第 51 ~ 55 题
- c语言打字游戏程序设计报告,2016打字游戏程序设计报告.doc
- rms 公式 有效值_有效值、真有效值、基波有效值、全有效值概念辨析
- 3---IO流练习题库
- 2分钟完美激活Windows7旗舰版
- openwrt怎么做ap_openwrt 添加 无线AP
- 手机对红外探头发送数据和接受
- Python3 编程第一弹 斐波纳契数列
- 一手掌控美食新鲜“灵魂”且融汇到生活的方方面面
- 部署 GlusterFS 群集
- 哪个计算机无法做到双屏显示,显卡为何无法实现双屏显示 -电脑资料
- 互联网产品设计进阶(14)多一点设计,少一点代码
- (学习向)大数除法(余数,小数)