简单的身份证号码校验

function checkIdCard($idcard)
{
    // 只能是18位
    if (strlen($idcard) != 18) {
        return false;
    }
    // 取出本体码
    $idcard_base = substr($idcard, 0, 17);
    // 取出校验码
    $verify_code = substr($idcard, 17, 1);
    // 加权因子
    $factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    // 校验码对应值
    $verify_code_list = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
    // 根据前17位计算校验码
    $total = 0;
    for ($i = 0; $i < 17; $i++) {
        $total += substr($idcard_base, $i, 1) * $factor[$i];
    }
    // 取模
    $mod = $total % 11;
    // 比较校验码
    if ($verify_code == $verify_code_list[$mod]) {
        return true;
    } else {
        return false;
    }
}

PHP 自 5.2 到 5.6 中新增的功能详解[转]

因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣。
本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征。

PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束
PHP5.2:JSON 支持
PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar
PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改
PHP5.5:yield, list() 用于 foreach, 细节修改
PHP5.6: 常量增强,可变函数参数,命名空间增强







- 阅读全部 -

在linux中正确的安装Xcache加速php

在linux中正确的安装Xcache加速php,亲测,未安装之前内存消耗为3.4M/req,安装之后,执行过一次页面后,使用内存小于600Kb。

  1. 第一步,下载Xcache

  2. 第二步,解压Xcache源码

  3. 第三步,非常重要

    安装前要执行phpize配置
    /php的路径/bin/phpize

  4. 第四步,配置->编译->安装

    配置

    ./configure --prefix=/php的路径/lib/php/extensions
    --with-php-config=/php的路径/bin/php-config
    --enable-xcache

    编译 && 安装

    make && make install

  5. 第五步,重启服务器

    service httpd restart

需要注意的是zend optimizer和Xcache可能会有冲突

PHP7 太空船操作符

太空船操作符用于比较两个表达式。当$a大于、等于或小于$b时它分别返回-1、0或1。 比较的原则是沿用 PHP 的常规比较原则进行的。

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

PHP7 null合并运算符

以前总是要使用的isset方法 现在可以简化了

曾经是这样的:

$info = isset($_GET['something']) ? $_GET['something'] : 'nothing';

现在可以这样了:

$info = $_GET['something']  ??  'nothing';

甚至你还可以这样:

$info = $_GET['something'] ?? $_POST['something'] ?? 'nothing';

扫一扫