php函数使用小技巧

正则匹配取字符串中需要字符

$string = '1231231313测试';
$reg = '/[\x{4e00}-\x{9fa5}]/u';//匹配中文(匹配所需字符的正则表达式)
$isMatched = preg_match_all($reg, $string, $matches);
 if($isMatched){
     print_r($matches);//$matches 需要的字符保存的数组
 }

检查类中是否存在该方法

method_exists:判断类中是否存在方法 判断private or protected functions 同样 return true

in_array(method, get_class_methods(class_name))
//与is_callable效果一样
is_callable(array($action, _METHOD_))

判断一个字符串是否包含另一个字符串

//返回一个从被判断字符开始到结束的字符串,没有找到返回false,stristr不区分大小写
strstr("You love php, I love php too!","php");
//字符串中第一次出现的位置:没有找到返回false
strpos("You love php, I love php too!","php");

转换大小写

 //转换成小写
 $str = strtolower('I want To DYY');//结果 i want to dyy
 //转换成大写
 $str = strtoupper('i want to dyy');//结果 I WANT TO DYY

获得全局变量处理后的数据

    /**
     * 获得全局变量处理后的数据
     * @param unknown $method 全局变量类型
     * @param unknown $field 字段名
     * @param string $type 字段数据类型
     * @return string|Ambigous <string, mixed>|number
     */
    public static function dataOnFn($method, $field, $type = '') {
        $method = strtoupper ( $method );

        if ($method == 'GET') {
            $data = isset ( $_GET [$field] ) ? $_GET [$field] : '';
        } else if ($method == 'POST') {
            $data = isset ( $_POST [$field] ) ? $_POST [$field] : '';
        } else if ($method == 'SESSION') {
            $data = isset ( $_SESSION [$field] ) ? $_SESSION [$field] : '';
        } else if ($method == 'COOKIE') {
            $data = isset ( $_COOKIE [$field] ) ? $_COOKIE [$field] : '';
        } else if ($method == 'SERVER') {
            $data = isset ( $_SERVER [$field] ) ? $_SERVER [$field] : '';
        } else if ($method == 'FILES') {
            $data = isset ( $_FILES [$field] ) ? $_FILES [$field] : '';
        } else {
            return '';
        }

        switch ($type) {
            case '' :
                return self::getStr ( $data );
            case 'int' :
                return self::getInt ( $data );
            case 'string' :
                return self::getStr ( trim ( $data ) );
            default :
                return self::getStr ( $data );
        }
    }  

    /**
     * 字符串型过滤函数
     *
     * @param unknown $string            
     */
    public static function getStr($string)
    {
        $value = $string;
        if (! get_magic_quotes_gpc()) {
            $value = addslashes($string);
        }
        $value = str_replace("_", "\\_", $value); // 把 '_'过滤掉
        $value = str_replace("%", "\\%", $value); // 把' % '过滤掉
        $value = nl2br($value); // 回车转换;
        $value = htmlspecialchars($value); // html标记转换
        return $value;
    }
    /**
     * 整型过滤函数
     *
     * @param unknown $number            
     */
    public static function getInt($number)
    {
        return intval($number);
    }

格式化时间戳之间的时间差

// 格式化时间
function formatTime($time) {
    if ($time <= 0) {
        return '很久以前';
    }
    $now = time ();
    $timeStr = $now - $time;
    $minuteStr = $timeStr / 60;
    if ($minuteStr < 30) {
        return ceil ( $minuteStr ) . '分钟前';
    }
    if ($minuteStr < 60) {
        return '半小时前';
    }
    $hourStr = $minuteStr / 60;
    if ($hourStr < 24) {
        return floor ( $hourStr ) . '小时前';
    }
    $dayStr = $hourStr / 24;
    if ($dayStr < 31) {
        return floor ( $dayStr ) . '天前';
    }
    $monthStr = $dayStr / 30;
    if ($monthStr < 12) {
        return floor ( $monthStr ) . '月前';
    }
    $yearStr = $monthStr / 12;
    return floor ( $yearStr ) . '年前';
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值