php

    php判断utf-8字符是否是中文?

    04 Dec 2008

    使用正则表达式,比如下面判断$username是否完全是中文:

    preg_match("/^[\x{4e00}-\x{9fa5}]+$/u", $username);
    Read More

    Tags 


    php返回N个不重复的随机数

    17 Nov 2008

    应用场景:需要从数据库中随机查询多条数据,mysql反对使用order by rand(),因为效率太差。也看到通过子查询来模拟的,不过还是麻烦。最简单的方法,就是读取数据表中的max(id),然后在程序中生成N个随机数,然后应用where id in (?)来获取数据。

    php程序生成N个随机数的思想就是定义一个N大小的数组用来存放随机数,每次生成一个随机数都遍历一遍数组,如果已经存在就丢弃,如果不存在就插入到数组中,直到数组的随机数已满。

    程序如下:

    /**
     * 获取$num个不重复的随机数数组
     *
     * @param $min integer 随机数的最小值
     * @param $max integer 随机数的最大值
     * @param $num integer 随机数的数量
     * @return array $num个随机数
     */
    function random_numbers($min, $max, $num) {
        if ($num > $max - $min + 1  $num  1) {
            return null;
        }
    
        $numbers = array()...
    Read More

    Tags