Salitt应用中心

致力于打造多功能的微信公众号

如何用PHP计算身份证最后一位效验码

如何用PHP计算身份证最后一位效验码

一个身份证号码当然不是乱输入就可以使用的,最后一位是效验码,是需要通过一定公式来计算的。
我们在已知前17位身份证号的情况下,可以使用以下方法进行运算:

第一步:
将身份证号码的第1位数字与7相乘;
将身份证号码的第2位数字与9相乘;
将身份证号码的第3位数字与10相乘;
将身份证号码的第4位数字与5相乘;
将身份证号码的第5位数字与8相乘;
将身份证号码的第6位数字与4相乘;
将身份证号码的第7位数字与2相乘;
将身份证号码的第8位数字与1相乘;
将身份证号码的第9位数字与6相乘;
将身份证号码的第10位数字与3相乘;
将身份证号码的第11位数字与7相乘;
将身份证号码的第12位数字与9相乘;
将身份证号码的第13位数字与10相乘;
将身份证号码的第14位数字与5相乘;
将身份证号码的第15位数字与8相乘;
将身份证号码的第16位数字与4相乘;
将身份证号码的第17位数字与2相乘。

第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。

第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。

第四步:
如果余数为0,那对应的最后一位身份证的号码为1;
如果余数为1,那对应的最后一位身份证的号码为0;
如果余数为2,那对应的最后一位身份证的号码为X;
如果余数为3,那对应的最后一位身份证的号码为9;
如果余数为4,那对应的最后一位身份证的号码为8;
如果余数为5,那对应的最后一位身份证的号码为7;
如果余数为6,那对应的最后一位身份证的号码为6;
如果余数为7,那对应的最后一位身份证的号码为5;
如果余数为8,那对应的最后一位身份证的号码为4;
如果余数为9,那对应的最后一位身份证的号码为3;
如果余数为10,那对应的最后一位身份证的号码为2。

例子:比如说身份证号前17位是“44200019990206462”。(这个身份证号是我临时编的)
1.进行第一步的计算,式子为:

4X7=28
4X9=36
2X10=20
0X5=0
0X8=0
0X4=0
1X2=2
9X1=9
9X6=54
9X3=27
0X7=0
2X9=18
0X10=0
6X5=30
4X8=32
6X4=24
2X2=4

2.进行第二步的计算,将第一步所得的数相加,得284。

3.第三步的计算,将第二步的得数除以11,只取余数。
284/11=25.81
25X11=275
284-275=9
余数是9。

4.在第四步里,余数是9的话,身份证最后一位是3。

下面是PHP代码:

function getLastNumber($str){  
    $factor = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); // 前17位的权重  
    $c = array(1,0,'X',9,8,7,6,5,4,3,2); //模11后的对应校验码  
    if(strlen($str)!=17){  
        exit('请输入17位有效数字');  
    }  
    $res = 0;  
    for ($i=0; $i<17; $i++){  
        $res += intval($str[$i]) * $factor[$i];  
    }  
    return $c [$res % 11];  
}
echo getLastNumber("44200019990206462");

参考资料:
公式来源:http://jingyan.baidu.com/article/ff4116259e0a7112e48237b9.html
代码来源:http://blog.csdn.net/liuyuan_jq/article/details/7277400

二级域名绑定子目录方法 Nginx for Linux

二级域名绑定子目录方法 Nginx for Linux

条件:
1.Linux虚拟主机并支持伪静态重写规则和支持.htaccess
2.子目录已存在,二级域名也解析到虚拟主机上。
比如说主机根目录里已新建好blog目录,想要把blog.xxx.com绑定到xxx.com/blog目录里,就需要用到本方法来设置.htaccess了

首先,在主机根目录里新建".htaccess"文件,并用文本方式打开输入以下内容,本文以salitt.com域名为例:

 # 开启功能 
RewriteEngine on 

# 你要绑定的二级域名 
RewriteCond %{HTTP_HOST} ^(blog.)?salitt.com$ 

# 把那个子目录指向要绑定的二级域名 
# 这里以子目录blog目录为例 
RewriteCond %{REQUEST_URI} !^/blog/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /blog/$1 

#这里改成要绑定的二级域名和要绑定的子目录 
RewriteCond %{HTTP_HOST} ^(blog.)?salitt.com$ 
RewriteRule ^(/)?$ blog/index.php [L] 

然后保存即可使用blog.salitt.com来访问了。上面的代码里的“blog”和“salitt.com”请根据你的需要来修改。

谷歌推出AutoDraw绘图工具

谷歌推出AutoDraw绘图工具

谷歌推出一个名叫AutoDraw的基于Web的网络工具,它用机器学习技术将个人涂鸦转化为艺术品,让不会画画的人也能成为艺术家。

如果用户画下一个笑脸,虽然画得不漂亮,系统却可以识别,将它替换成表情符号,AutoDraw的功能与此类似。AutoDraw是免费的,可以在任何手机、平板、电脑上使用。操作相当简单,例如,我们可以画一个蛋糕,工具就会猜测你画的是什么。

如果你对自己画的东西很满意,可以关闭自动提示工具。

谷歌之前还曾设立过一个名叫QuickDraw的实验项目,它所用的技术与AutoDraw是一样的。QuickDraw是一个迷你游戏,它会告诉你根据哪个对象画图,比如根据眼睛、直升机绘画,然后给AI 20秒时间让它识别。相对而言AutoDraw更重要创造力,用户可以绘制海报、彩色图画书。两个项目的目的倒是一致的:让神经网络识别涂鸦。

Google声称AutoDraw现在可以识别几百种图画,未来还会增加更多。

AutoDraw的访问地址:点击这里。https://www.autodraw.com/

本文转载于月光博客:http://www.williamlong.info/archives/4941.html

微信公众号即日起可注销

微信公众号即日起可注销

  微信官方宣布,即日起,微信公众号可以自主注销,用户在核实身份信息或者验证帐号主体后,可以在公众号后台-“公众号设置”-“原始ID”中,发起注销流程。

  帐号完成注销后,主体注册次数、运营者身份证信息、手机号码、帐号昵称、管理员微信号、注册邮箱等,均可释放。

  目前注销个人类型帐号需要的条件为验证帐号注册人的身份信息;注销组织类型帐号需要的条件为通过小额打款,验证帐号主体信息。最终帐号管理员确认后,完成微信公众号注销。

  帐号发起注销后,会有一段时间的“冻结期”,在此期间可以撤销“注销”。根据粉丝量大小,“冻结期”长短不同。粉丝数量少于1万的账号,冻结期为15天;1万~10万的账号,冻结期为30天;粉丝超过10万后,冻结期延长为60天。

  “冻结期”内,主体注册次数、运营者身份证信息、手机号码、帐号昵称、管理员微信号、注册邮箱等资源仍处于占用状态;管理员确认注销后,立即释放。

  另外,微信公众号原名称有15天的保护期,在此期间,符合命名唯一规则情况下,只有同一主体下的其他帐号可以使用该名称,不同主体的帐号,则需在保护期满后才能申请使用该名称。

  对于为何要上线微信公众号注销的功能,微信表示,个人身份证信息或个人微信号,最多可以绑定5个微信公众号,有不少用户绑定的帐号数已达上限,无法重新注册或绑定新帐号,造成了一些不便。此次上线“帐号注销”流程,一方面可以释放身份信息,用于注册或绑定更需要的帐号;另一方面,也可以清理平台上存在的一些不活跃帐号,释放昵称、注册邮箱等资源。

本文转载于月光博客:http://www.williamlong.info/archives/4938.html

如何获取别人的微信公众号的二维码

有时候,我们知道了微信公众号的ID,但苦苦找不到这个公众号的二维码,对于有些特殊需求的人群,可以用此方法来获取微信公众号的二维码。
注:私人微信号无效。
直接上地址:http://open.weixin.qq.com/qr/code/?username=salitt_app

上面是一个公众号示例,地址和用法:http://open.weixin.qq.com/qr/code/?username=公众号ID

“username=”后面接上公众号ID,不是原始ID也不是公众号名称。

这样就可以在自己的网站或文章里直接使用img标签来调用图片了,比如这样:

<img src="http://open.weixin.qq.com/qr/code/?username=salitt_app">

效果: