zl程序教程

您现在的位置是:首页 >  其他

当前栏目

PHP 一些常用的公共小技巧方法整理

2023-04-18 16:56:07 时间
  • 在此,整理一下平常工作中,常用的一些公共方法,方便后期开发使用
/**
 * 公用的方法  返回json数据,进行信息的提示
 * @param int $status 状态
 * @param string $msg 提示信息
 * @param array $data 返回数据
 */
function showMsg($status = 1,$msg = '',$data = array()){
    $result = array(
        'status' => $status,
        'msg' =>$msg,
        'data' =>$data
    );
    return exit(json_encode($result,JSON_UNESCAPED_UNICODE));
}

/**
 * 判断一个数组中的元素是否全存在于另一个数组中
 * @param $arr array 一维数组
 * @param $allArr array 一维数组
 * @return boolean
 */
function currArrExistsInOther($arr = [], $allArr = []){
    if (!empty($arr) && !empty($allArr)) {
        for ($i = 0; $i < count($arr); $i ++) {
            if (!in_array($arr[$i], $allArr)) {
                return false;
            }
        }
        return true;
    }else{
        return false;
    }
 }

/**
 * 用户二维码图片
 * @param $user_id [用户id]
 * @param $recommend[推荐码]
 * @param $data[链接地址]
 */
//生成图片二维码 $data链接  $id user_id;
function code($url,$user_id,$recommend){
    $user=M('users')->field('user_name')->where('user_id='.$user_id)->find();
    $user_name=$user['user_name'];
    $canshu="?r_ec=$recommend";
    $url=$url.$canshu;
    vendor("phpqrcode.phpqrcode");
    // 纠错级别:L、M、Q、H
    $level = 'H';
    // 点的大小:1到10,用于手机端4就可以了
    $size = 4;
    // 下面注释了把二维码图片保存到本地的代码,如果要保存图片,用$fileName替换第二个参数false
    $path = "Public/code/".date("ymd")."/";
    if(!is_dir($path))
    {
        mkdir($path);
    }
    $fileName = $path.$user_name.'.png';
    $data['code']=$fileName;
    M('users')->where('user_id='.$user_id)->save($data);
    ob_end_clean();//清空缓冲区
    QRcode::png($url, $fileName, $level, $size,1);
}

function is_weixin(){
    if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') === false ){
        return false;
    }else{
        return ture;
    }
}

//获取用户ip地址
function get_ip() {
    static $ip;
    if (isset($_SERVER)) {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
            $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
    }

    if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $ip)) {
        return $ip;
    } else {
        return '127.0.0.1';
    }
}