php判断信用卡,php校验信用卡卡号代码

[php]代码库// This function will take a credit card number and check to make sure it

// contains the right amount of digits and uses the Luhn Algorithm to

// weed out made up numbers

function validateCreditcard_number($credit_card_number)

{

// Get the first digit

$firstnumber = substr($credit_card_number, 0, 1);

// Make sure it is the correct amount of digits. Account for dashes being present.

switch ($firstnumber)

{

case 3:

if (!preg_match('/^3\d{3}[ \-]?\d{6}[ \-]?\d{5}$/', $credit_card_number))

{

return 'This is not a valid American Express card number';

}

break;

case 4:

if (!preg_match('/^4\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))

{

return 'This is not a valid Visa card number';

}

break;

case 5:

if (!preg_match('/^5\d{3}[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))

{

return 'This is not a valid MasterCard card number';

}

break;

case 6:

if (!preg_match('/^6011[ \-]?\d{4}[ \-]?\d{4}[ \-]?\d{4}$/', $credit_card_number))

{

return 'This is not a valid Discover card number';

}

break;

default:

return 'This is not a valid credit card number';

}

// Here's where we use the Luhn Algorithm

$credit_card_number = str_replace('-', '', $credit_card_number);

$map = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

0, 2, 4, 6, 8, 1, 3, 5, 7, 9);

$sum = 0;

$last = strlen($credit_card_number) - 1;

for ($i = 0; $i <= $last; $i++)

{

$sum += $map[$credit_card_number[$last - $i] + ($i & 1) * 10];

}

if ($sum % 10 != 0)

{

return 'This is not a valid credit card number';

}

// If we made it this far the credit card number is in a valid format

return 'This is a valid credit card number';

}

echo validateCreditcard_number('4111-1111-1111-1111'); // This is a valid credit card number

echo validateCreditcard_number('4111-1111-1111-1112'); // This is not a valid credit card number

echo validateCreditcard_number('5558-545f-1234'); // This is not a valid MasterCard card number

echo validateCreditcard_number('9876-5432-1012-3456'); // This is not a valid credit card number

694748ed64b9390909c0d88230893790.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浮点数的表示和基本运算 【转载】

1 浮点数的表示通常&#xff0c;我们可以用下面的格式来表示浮点数 SPM其中S是符号位&#xff0c;P是阶码&#xff0c;M是尾数对于IBM-PC而言&#xff0c;单精度浮点数是32位&#xff08;即4字节&#xff09;的&#xff0c;双精度浮点数是64位&#xff08;即8字节&#xff09;的…

python list长度_python的入门阶段 编程思维100题 我跟罗志祥没关系

"""python的入门阶段 编程思维100题&#xff08;适合学习了1周--1个月的新人&#xff09; 第五题&#xff1a;我跟罗志祥没关系 朋友圈大家每天都看&#xff0c;那用python如何实现它那&#xff1f; 很简单&#xff0c;朋友的信息&#xff08;名字&#xff0c;头…

全国计算机等级考试题库二级C操作题100套(第75套)

第75套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串&#xff0c;且串长<N。请在程序的下划线处填入正确的内容并把下划线删除&#xff0c;使程序得出正确…

php7过滤,PHP7过滤unserialize()

PHP7引入了过滤 unserialize()函数以在反序列化不受信任的数据对象时提供更好的安全性。它可以防止可能的代码注入&#xff0c;使开发人员能够使用序列化白名单类。示例class MyClass1 {public $obj1prop;}class MyClass2 {public $obj2prop;}$obj1 new MyClass1();$obj1->…

windows系统查找文件-通配符的使用

在windows中可以使用通配符“* ”、“? ”查找文件。对于相同字符开头的单词和相同字符结尾的单词可以用“<”和“ >”通配符查找单词。1、如果要查找&#xff1a; 任意单个字符 &#xff1a;键入 ? 例如&#xff0c;s?t 可查找“sat”和“set”……。2、任意字符串 :…

python为什么是动态语言_python为什么是动态语言

首先要理解什么是动态语言&#xff1a;通俗地说&#xff1a;能够在运行时修改自身程序结构的语言&#xff0c;就属于动态语言。那怎样才算是“运行时修改自身程序结构”呢&#xff1f;比如下面这几个例子都算&#xff1a;在运行时给某个类增加成员函数及成员变量&#xff1b;在…

Android ----中文Api 百度地图

Android中文API最新中文版 [复制链接] kupekupe当前离线在线时间1 小时e望0 点最后登录2011-2-17注册时间2011-2-17积分12阅读权限10UID1341171 主题 0 好友 12 积分No.1 开发小菜鸟 No.1 开发小菜鸟, 积分 12, 距离下一级还需 88 积分升级 12% 当前用户组为 No.1 开发小菜鸟 …

全国计算机等级考试题库二级C操作题100套(第76套)

第76套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;计算下式前n项的和作为函数值返回。 例如&#xff0c;当形参n的值为10时&#xff0c;函数返回&#xff1a;-0.204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意&a…

正在启动oracle universal,oracle的常见问题与解决

刚接触oracle,在学习过程中遇到了很多的问题&#xff0c;本文章将会收藏我遇到的问题及如何解决。错误一&#xff1a;ORA-28009:connection as sys should be as sysdba解决方法:用户名称&#xff1a;sys,口令&#xff1a;password,主机字符串:orcl as sysdba(我设置的全局数据…

高性能MySQL(二)

MySQL基准测试 为什么需要benchmark 验证基于系统的假设&#xff0c;确认是否符合实际情况重现系统中的某些异常行为&#xff0c;以解决它们测试系统当前的运行情况&#xff0c;如果不清楚当前性能&#xff0c;就无法确认优化效果模拟比当前系统更高的负载&#xff0c;用于找出…

python的用算法进制转换详解_学习python第五天进制转换

6.进制之间的转换(重要)二进制&#xff1a;满二进一 范围&#xff1a;0、1符号:0b例如&#xff1a;0b10...【注意】计算机只能识别二进制数据八进制&#xff1a;满八进一 范围&#xff1a;0~7符号:0o例如&#xff1a;0o66十进制&#xff1a;满十进一 范围&#xff1a;0~9十六进…

android之多媒体篇(一)

2019独角兽企业重金招聘Python工程师标准>>> Android 4.0.3(Api Level 15&#xff09;支持的多媒体格式。 注意&#xff1a;有些设备可能支持其他的文件格式。 1.Audio AAC LC/LTP、HE-AACv1(AAC)、AMR-NB、AMR-WB、MP3、MIDI、Ogg Vorbis、PCM/WAVE、FLAC&#…

全国计算机等级考试题库二级C操作题100套(第77套)

第77套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将形参n中&#xff0c;各位上为偶数的数取出&#xff0c;并按原来从高位到低位相反的顺序组成一个新的数&#xff0c;并作为函数值返回。 例如&#xff0c;输入一个整数&#xff1a;27638496&#xff0c…

第二章:用户登录管理模块

本章简介 1.项目分层 2.创建MyHibernateSessionFactory 3.设计用户接口和实现类 4.设计所有Action父类 5.设计用户Action类 6.页面调用 7.完成显示登录成功用户名和注销功能 8.显示报错信息 1.项目分层 实体层&#xff08;模型层&#xff09;&#xff1a;entity包 学生类、用户…

python组合数据分类_Python 数据可视化:分类特征统计图

上一课已经体验到了 Seaborn 相对 Matplotlib 的优势&#xff0c;本课将要介绍的是 Seaborn 对分类数据的统计&#xff0c;也是它的长项。针对分类数据的统计图&#xff0c;可以使用 sns.catplot 绘制&#xff0c;其完整参数如下&#xff1a;seaborn.catplot(xNone, yNone, hue…

MongoDB 主从集群配置

创建必要的目录和认证文件&#xff1a; [rootmongo mongo]# mkdir keyfile [rootmongo mongo]# echo "mongo cluster one" > keyfile/m1[rootmongo mongo]# echo "mongo cluster one" > keyfile/m2[rootmongo mongo]# echo "mongo cluster one&…

linux进程互斥要点,linux进程之间互斥

总所周知&#xff0c;在linux中pthread_mutex_t可以用于同一进程内多个线程之间的同步。我们所需要做的工作&#xff0c;仅仅是定义一个全局的pthread_mutex_t类型变量即可。但是对于进程之间的互斥&#xff0c;就没有那么简单了。我们必须将pthread_mutex_t类型变量放到各个进…

java定时器_拾遗Timer定时器

一 Timer 介绍在开发中我们经常会遇到一些简单定时任务的需求&#xff0c;而不需要量级较重的定时任务就可以采取java定时器&#xff1b;java.util.Timer工具类中的Timer 是定时器&#xff0c;但定时任务写在java.util.TimerTask 中&#xff0c;由 Timer 执行 TimerTask &#…

逻辑门电路的知识点归纳

1.半导体二极管与MOS管的开关特性 二极管&#xff1a;正向导通&#xff0c;反向截止&#xff0c;但是要注意的是从反向截止到正向导通的时间极其短&#xff0c;但是从正向导通到反向截止要经过反向恢复&#xff08;电荷存储效应&#xff09;的过程&#xff0c;这个过程实际上就…

全国计算机等级考试题库二级C操作题100套(第78套)

第78套&#xff1a; 给定程序中&#xff0c;函数fun的功能是:将NN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如&#xff0c;若N3&#xff0c;有下列矩阵&#xff1a; 1 2 3 4 5 6 7 8 9 交换后为&#xff1a; 3 2 1 4 5 6 9 8 7 请在程序的下划线处…