PHP

我的一些常用的PHP函数

2874992246
2025-03-27 / 0 评论 / 3 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年03月27日,已超过272天没有更新,若内容或图片失效,请留言反馈。
<?php
// 应用公共文件,内置主要的数据处理方法
use Jenssegers\Agent\Agent;
use think\facade\Cache;
use think\facade\Config;
use think\facade\Db;
use think\facade\Request;

function error_page_data()
{
    return array(
        'site_title' => get_system_config('site_title'),
        'site_keywords' => get_system_config('site_keywords'),
        'site_description' => get_system_config('site_description'),
        'site_mail' => get_system_config('site_mail'),
        'site_qq' => get_system_config('site_qq'),
        'site_beian' => get_system_config('site_beian'),
        'site_copyright' => get_system_config('site_copyright'),
        'title' => "页面错误"
    );
}

/*
 * 随机生成订单号
 */
function get_orderid()
{
    return date('YmdHis') . rand(10000000, 99999999);
}

/*
 * 随机字符串,默认长度10
 * $num 长度
 */
function get_string($num = 10)
{
    $str = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890';
    $salt = substr(str_shuffle($str), 10, $num);
    return $salt;
}

/*
 * 判断访客是否是蜘蛛
 */
function is_robot($except = '')
{
    $ua = strtolower($_SERVER ['HTTP_USER_AGENT']);
    $botchar = "/(baidu|google|spider|soso|yahoo|sohu-search|yodao|robozilla|AhrefsBot)/i";
    $except ? $botchar = str_replace($except . '|', '', $botchar) : '';
    if (preg_match($botchar, $ua)) {
        return true;
    }
    return false;
}

/*
 * 判断是否是手机浏览器
 */
function is_mobile()
{
    if (isset($_SERVER['HTTP_VIA']) && stristr($_SERVER['HTTP_VIA'], "wap")) {
        return true;
    } elseif (isset($_SERVER['HTTP_ACCEPT']) && strpos(strtoupper($_SERVER['HTTP_ACCEPT']), "VND.WAP.WML")) {
        return true;
    } elseif (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) {
        return true;
    } elseif (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])) {
        return true;
    } else {
        return false;
    }
}

/**
 * @param $email
 * @return bool
 */
function is_email($email)
{
    $chars = "/^([a-z0-9+_]|-|\\.)+@(([a-z0-9_]|-)+\\.)+[a-z]{2,6}\$/i";
    if (strpos($email, '@') !== false && strpos($email, '.') !== false) {
        if (preg_match($chars, $email)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

/**
 * @param $phone
 * @return bool
 */
function is_phone($phone)
{
    $chars = "/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$|17[0-9]{1}[0-9]{8}$/";
    if (preg_match($chars, $phone)) {
        return true;
    }
    return false;
}

/**
 * @param $ip
 * @return false|mixed|string
 * 获取IP的详细地址
 */
function get_ip_city($ip)
{
    /*
    http://opendata.baidu.com/api.php?query=116.179.32.80&co=&resource_id=6006&oe=utf8
    https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=116.179.32.80&co=&resource_id=6006&oe=utf8
    */
    $url = 'https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=';
    $city = get_curl($url . $ip);
    $city = mb_convert_encoding($city, "UTF-8", "GB2312");
    $city = json_decode($city, true);
    $location = $city['city'] ? $city['pro'] . $city['city'] : $city['pro'];
    return $location ?: $city['addr'];
}

//设置缓存
function set_cache($key, $value, $date = 86400)
{
    Cache::set($key, $value, $date);
}

//读取缓存
function get_cache($key)
{
    return Cache::get($key);
}


function clear_cache($key)
{
    Cache::clear($key);
}


function get_system_config($name)
{
    $content = '';
    $type = Db::name('config')->where('name', $name)->value('type');
    if ($type) {
        // 如果存在缓存则优先读取缓存
        if (get_cache('system_config_' . $type)) {
            $array = get_cache('system_config_' . $type);
        } else {
            $array = Db::name('config')->field('name,content')->where('type', $type)->order('id asc')->select()->toArray();
            set_cache('system_config_' . $type, $array);
        }
        foreach ($array as $value) {
            if ($value['name'] == $name) {
                $content = $value['content'];
                break;
            }
        }
        if ($content) {
            return $content;
        } else {
            return '';
        }
    } else {
        return '';
    }
}

//生成一个不会重复的字符串
function make_token($type = 1)
{
    $str = md5(uniqid(md5(microtime(true)), true));
    $str = sha1($str); //加密
    if ($type == 1) {
        $str = strtoupper($str);
    }
    return $str;
}

/**
 * 将字符部分加密并输出
 * @param unknown $str
 * @param unknown $start 从第几个位置开始加密(从1开始)
 * @param unknown $length 连续加密多少位
 * @return string
 */
function encrypt_show($str, $start, $length)
{
    $end = $start - 1 + $length;
    $array = str_split($str);
    foreach ($array as $k => $v) {
        if ($k >= $start - 1 && $k < $end) {
            $array[$k] = '*';
        }
    }
    return implode('', $array);
}

/**
 * 加密函数
 * @param string $txt 需要加密的字符串
 * @param string $key 密钥
 * @return string 返回加密结果
 */
function ds_encrypt($txt, $key = '')
{
    if (empty($txt))
        return $txt;
    if (empty($key))
        $key = md5(config('ds_config.setup_date'));
    $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.";
    $ikey = "-x6g6ZWm2G9g_vr0Bo.pOq3kRIxsZ6rm";
    $nh1 = rand(0, 64);
    $nh2 = rand(0, 64);
    $nh3 = rand(0, 64);
    $ch1 = $chars{$nh1};
    $ch2 = $chars{$nh2};
    $ch3 = $chars{$nh3};
    $nhnum = $nh1 + $nh2 + $nh3;
    $knum = 0;
    $i = 0;
    while (isset($key{$i}))
        $knum += ord($key{$i++});
    $mdKey = substr(md5(md5(md5($key . $ch1) . $ch2 . $ikey) . $ch3), $nhnum % 8, $knum % 8 + 16);
    $txt = base64_encode(TIMESTAMP . '_' . $txt);
    $txt = str_replace(array('+', '/', '='), array('-', '_', '.'), $txt);
    $tmp = '';
    $j = 0;
    $k = 0;
    $tlen = strlen($txt);
    $klen = strlen($mdKey);
    for ($i = 0; $i < $tlen; $i++) {
        $k = $k == $klen ? 0 : $k;
        $j = ($nhnum + strpos($chars, $txt{$i}) + ord($mdKey{$k++})) % 64;
        $tmp .= $chars{$j};
    }
    $tmplen = strlen($tmp);
    $tmp = substr_replace($tmp, $ch3, $nh2 % ++$tmplen, 0);
    $tmp = substr_replace($tmp, $ch2, $nh1 % ++$tmplen, 0);
    $tmp = substr_replace($tmp, $ch1, $knum % ++$tmplen, 0);
    return $tmp;
}

/**
 * 解密函数
 * @param string $txt 需要解密的字符串
 * @param string $key 密匙
 * @return string 字符串类型的返回结果
 */
function ds_decrypt($txt, $key = '', $ttl = 0)
{
    if (empty($txt))
        return $txt;
    if (empty($key))
        $key = md5(config('ds_config.setup_date'));

    $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.";
    $ikey = "-x6g6ZWm2G9g_vr0Bo.pOq3kRIxsZ6rm";
    $knum = 0;
    $i = 0;
    $tlen = @strlen($txt);
    while (isset($key{$i}))
        $knum += ord($key{$i++});
    $ch1 = @$txt{$knum % $tlen};
    $nh1 = strpos($chars, $ch1);
    $txt = @substr_replace($txt, '', $knum % $tlen--, 1);
    $ch2 = @$txt{$nh1 % $tlen};
    $nh2 = @strpos($chars, $ch2);
    $txt = @substr_replace($txt, '', $nh1 % $tlen--, 1);
    $ch3 = @$txt{$nh2 % $tlen};
    $nh3 = @strpos($chars, $ch3);
    $txt = @substr_replace($txt, '', $nh2 % $tlen--, 1);
    $nhnum = $nh1 + $nh2 + $nh3;
    $mdKey = substr(md5(md5(md5($key . $ch1) . $ch2 . $ikey) . $ch3), $nhnum % 8, $knum % 8 + 16);
    $tmp = '';
    $j = 0;
    $k = 0;
    $tlen = @strlen($txt);
    $klen = @strlen($mdKey);
    for ($i = 0; $i < $tlen; $i++) {
        $k = $k == $klen ? 0 : $k;
        $j = strpos($chars, $txt{$i}) - $nhnum - ord($mdKey{$k++});
        while ($j < 0)
            $j += 64;
        $tmp .= $chars{$j};
    }
    $tmp = str_replace(array('-', '_', '.'), array('+', '/', '='), $tmp);
    $tmp = trim(base64_decode($tmp));

    if (preg_match("/\d{10}_/s", substr($tmp, 0, 11))) {
        if ($ttl > 0 && (TIMESTAMP - (int)substr($tmp, 0, 11) > $ttl)) {
            $tmp = null;
        } else {
            $tmp = substr($tmp, 11);
        }
    }
    return $tmp;
}

/**
 * 生成密码hash值
 * @param string $password
 * @return string
 */
function encryption_hash(string $password): string
{
    return password_hash($password, PASSWORD_DEFAULT);
}

/**
 * 获取runtime根目录路径
 * @return string
 */
function runtime_root_path(): string
{
    return dirname(runtime_path()) . DIRECTORY_SEPARATOR;
}

/**
 * 写入日志 (使用tp自带驱动记录到runtime目录中)
 * @param mixed $value
 * @param string $type
 */
function log_record($value, string $type = 'info')
{
    $content = is_string($value) ? $value : print_r($value, true);
    Log::record($content, $type);
}

/**
 * 隐藏手机号中间四位 13012345678 -> 130****5678
 * @param string $mobile 手机号
 * @return string
 */

function hide_mobile(string $mobile): string
{
    return substr_replace($mobile, '****', 3, 4);
}

/**
 * 获取当前系统版本号
 * @return string
 * @throws BaseException
 */
function get_version(): string
{
    return Auth_Version;
}

//读取文件配置
function get_config($key)
{
    return Config::get($key);
}

function get_ip()
{
    return request()->ip();
}

/**
 * 获取当前请求的变量,并进行安全过滤,防止xss注入攻击
 * @param string $key
 * @return mixed
 */
function get_params(string $key = "", $default = '', $filter = 'htmlspecialchars')
{
    return Request::param($key, $default, $filter);
}

/**
 * 转义经过安全过滤后的值
 * @param $content
 * @return string
 */
function safe_decode($content): string
{
    return htmlspecialchars_decode($content);
}

//判断程序是否完成安装
function is_installed()
{
    static $isInstalled;
    if (empty($isInstalled)) {
        $isInstalled = file_exists(Auth_Root . 'app/install/install.lock');
    }
    return $isInstalled;
}


/**
 * @param int $type 1获取时间,2获取时间戳
 * @return false|int|string
 */
function get_date(int $type = 1)
{
    if ($type == 1) {
        $res = date('Y-m-d H:i:s');
    } elseif ($type == 2) {
        $res = time();
    }
    return $res;
}

function get_agent($type = '')
{
    $agent = new Agent();

    $data = array(
        // 获取操作系统。(Ubuntu,Windows,OS X等)
        'browser' => $agent->browser(),
        // 获取设备名称(如果是移动设备)。(iPhone,Nexus,华硕平板电脑等)
        'device' => $agent->device(),
        // 获取操作系统。(Ubuntu,Windows,OS X等)
        'platform' => $agent->platform(),
        // 获取浏览器的接受语言
        'languages' => $agent->languages()
    );
    if ($type) {
        return $data[$type];
    } else {
        return $data;
    }
}

/**
 * @return int
 */
function get_code(): int
{
    return rand(111111, 999999);
}

function Ping($Url, $length = 4): string
{
    $start = microtime(true);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $Url);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_NOBODY, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    curl_close($curl);
    $end = microtime(true);
    if (!empty($result)) {
        return round(number_format($end - $start, 10, '.', ''), $length) . '秒';
    }
    return '域名[ ' . $Url . ' ]无法访问';
}


/*
 * Action     网页请求操作
 * $url       需要请求的地址
 * $post      需要POST提交的数据
 * $referer   在HTTP请求头中"Referer: "的内容
 * $cookie    需要附带的cookie
 * $header    将头文件的信息作为数据流输出
 * $ua        在HTTP请求中包含一个"User-Agent: "头的字符串
 * $nobody    启用时将不对HTML中的BODY部分进行输出
 * $addheader 设置HTTP头字段的数组
 */
function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = 0, $nobaody = 0, $addheader = 0)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $httpheader[] = "Accept: */*";
    $httpheader[] = "Accept-Encoding: gzip,deflate,sdch";
    $httpheader[] = "Accept-Language: zh-CN,zh;q=0.8";
    $httpheader[] = "Connection: close";
    if ($addheader) {
        $httpheader = array_merge($httpheader, $addheader);
    }
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    if ($post) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
    if ($header) {
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
    }
    if ($cookie) {
        curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    }
    if ($referer) {
        if ($referer == 1) {
            curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f=');
        } else {
            curl_setopt($ch, CURLOPT_REFERER, $referer);
        }
    }
    if ($ua) {
        curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    } else {
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36');
    }
    if ($nobaody) {
        curl_setopt($ch, CURLOPT_NOBODY, 1);
    }
    curl_setopt($ch, CURLOPT_ENCODING, "gzip");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $ret = curl_exec($ch);
    curl_close($ch);
    return $ret;
}


/*
 * $to        收件人邮箱
 * $subject   邮件标题
 * $content   邮件内容
 * 发送邮件函数
 */
function send_email($to, $subject = '', $content = '')
{
    $mail = new PHPMailer\PHPMailer\PHPMailer();
    try {
        //设定邮件编码
        $mail->CharSet = "UTF-8";
        // 调试模式输出
        $mail->SMTPDebug = 0;
        // 使用SMTP
        $mail->isSMTP();
        // SMTP服务器
        $mail->Host = get_system_config('mail_smtp');
        // 允许 SMTP 认证
        $mail->SMTPAuth = true;
        // SMTP 用户名  即邮箱的用户名
        $mail->Username = get_system_config('mail_user');
        // SMTP 密码  部分邮箱是授权码(例如163邮箱)
        $mail->Password = get_system_config('mail_pass');
        // 允许 TLS 或者 ssl协议
        if (get_system_config('mail_encrypt')) {
            $mail->SMTPSecure = get_system_config('mail_encrypt');
        }
        //端口 - likely to be 25, 465 or 587,具体要看邮箱服务器支持
        $mail->Port = get_system_config('mail_port');
        //发件人
        $mail->setFrom(get_system_config('mail_user'), get_system_config('mail_name'));
        //接收邮件方
        if (is_array($to)) {
            foreach ($to as $v) {
                $mail->addAddress($v);
            }
        } else {
            $mail->addAddress($to);
        }

        //回复的时候回复给哪个邮箱 建议和发件人一致
        //$mail->addReplyTo(get_system_config('mail_user'));
        //抄送
        //$mail->addCC('cc@example.com');
        //密送
        //$mail->addBCC('bcc@example.com');
        // 添加附件
        //$mail->addAttachment('../../'.$mail_file);
        // 发送附件并且重命名
        // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');

        // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
        $mail->isHTML(true);
        // 邮件标题
        $mail->Subject = get_system_config('site_title') . ' - ' . $subject;
        // 邮件HTML内容
        $mail->Body = mail_view($content);
        // 邮件纯文本内容
        $mail->AltBody = $content;
        // 发送
        $mail->send();
        return true;
    } catch (Exception $e) {
        return $mail->ErrorInfo;
    }
}

/*
 * $content   邮件内容
 * 邮件模板
 */
function mail_view($content)
{
    $image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAABXCAMAAAAd8nYqAAADAFBMVEUAAADW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1taqJyaLAAAA/3RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1O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';
    $template = '
        <style>
            .box_one{
                position: relative;
                color:#555;
                font:12px/1.5 Microsoft YaHei,Tahoma,Helvetica,Arial,sans-serif;
                max-width:600px;
                margin:50px auto;
                border-radius: 5px;
                box-shadow:0 5px 10px#aaaaaa;
                background: 0 0 repeat-x#FFF;
                background-image: -webkit-repeating-linear-gradient(135deg, #4882CE,#4882CE 20px, #FFF 20px, #FFF 35px, #EB1B2E 35px,#EB1B2E 55px, #FFF 55px, #FFF 70px);
                background-image:repeating-linear-gradient(-45deg, #4882CE, #4882CE 20px, #FFF 20px, #FFF 35px, #EB1B2E 35px, #EB1B2E 55px, #FFF 55px, #FFF 70px);
                background-size: 100% 10px;
            }
            .box_two{
                position: absolute; 
                right: 15px;
                top: 20px;
                width:133px;
                height: 87px;
            }
        </style>
        <div class="box_one">
            <img class="box_two" src="' . $image . '"/>
            <div style="padding: 0 15px 15px;">
                <h2 style="border-bottom:1px solid #e9e9e9;font-size:18px;font-weight:normal;padding:20px 0 10px;">
                    ' . get_system_config('mail_name') . '
                </h2>
                <p><span style="color: #007bfc;">' . $content . '</span></p> 
            </div>
            <div style="color:#888;padding:10px;border-top:1px solid #e9e9e9;background:#f5f5f5;border-radius: 0 0 5px 5px;">
                <p style="margin: 0;padding: 0;text-align: center;">
                    Copyright © <a href="' . request()->domain() . '" target="_blank">' . get_system_config('site_copyright') . '</a> All Rights Reserved.</p>
                <p style="color: red;margin: 0;padding: 0;text-align: center;">本邮件由系统发送,请勿回复</p>
            </div>
        </div>
    ';
    return $template;
}

function url_status($url)
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);
    $res = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 200
    curl_close($ch);
    return $res;
}
0

评论 (0)

取消