|
|
@@ -1,12 +1,12 @@
|
|
|
<?php
|
|
|
// +----------------------------------------------------------------------
|
|
|
-// | RXThinkCMF框架 [ RXThinkCMF ]
|
|
|
+// | Laravel框架 [ Laravel ]
|
|
|
// +----------------------------------------------------------------------
|
|
|
-// | 版权所有 2017~2021 南京RXThinkCMF研发中心
|
|
|
+// | 版权所有 2017~2021 南京Laravel研发中心
|
|
|
// +----------------------------------------------------------------------
|
|
|
-// | 官方网站: http://www.rxthink.cn
|
|
|
+// | 官方网站: http://www.laravel.cn
|
|
|
// +----------------------------------------------------------------------
|
|
|
-// | Author: 牧羊人 <1175401194@qq.com>
|
|
|
+// | Author: wesmiler <12345678@qq.com>
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
// 此文件为系统框架核心公共函数文件,为了系统的稳定与安全,未经允许不得擅自改动
|
|
|
@@ -19,7 +19,7 @@ if (!function_exists('array_sort')) {
|
|
|
* @param $keys KEY
|
|
|
* @param bool $desc 排序方式(默认:asc)
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function array_sort($arr, $keys, $desc = false)
|
|
|
@@ -47,7 +47,7 @@ if (!function_exists('xml2array')) {
|
|
|
* xml转数组
|
|
|
* @param $xml xml文本
|
|
|
* @return string
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function xml2array(&$xml)
|
|
|
@@ -73,7 +73,7 @@ if (!function_exists('array2xml')) {
|
|
|
* @param bool $ignore 是否忽视true或fasle
|
|
|
* @param int $level 级别(默认:1)
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function array2xml($arr, $ignore = true, $level = 1)
|
|
|
@@ -100,7 +100,7 @@ if (!function_exists('array_merge_multiple')) {
|
|
|
* @param array $array1 数组1
|
|
|
* @param array $array2 数组2
|
|
|
* @return array 返回合并后的数组
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function array_merge_multiple($array1, $array2)
|
|
|
@@ -129,7 +129,7 @@ if (!function_exists('array_key_value')) {
|
|
|
* @param array $arr 数据源
|
|
|
* @param string $name 字段名
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function array_key_value($arr, $name = "")
|
|
|
@@ -154,7 +154,7 @@ if (!function_exists('curl_url')) {
|
|
|
/**
|
|
|
* 获取当前访问的完整地址
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function curl_url()
|
|
|
@@ -180,7 +180,7 @@ if (!function_exists('curl_get')) {
|
|
|
* @param $url 请求地址
|
|
|
* @param array $data 请求参数
|
|
|
* @return bool|string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/5
|
|
|
*/
|
|
|
function curl_get($url, $data = [])
|
|
|
@@ -213,7 +213,7 @@ if (!function_exists('curl_post')) {
|
|
|
* @param $url 请求地址
|
|
|
* @param array $data 请求参数
|
|
|
* @return bool|string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/5
|
|
|
*/
|
|
|
function curl_post($url, $data = [])
|
|
|
@@ -249,7 +249,7 @@ if (!function_exists('curl_request')) {
|
|
|
* @param string $type 请求类型(默认:post)
|
|
|
* @param bool $https 是否https请求true或false
|
|
|
* @return bool|string 返回请求结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function curl_request($url, $data = [], $type = 'post', $https = false)
|
|
|
@@ -298,7 +298,7 @@ if (!function_exists('datetime')) {
|
|
|
* @param $time 时间戳
|
|
|
* @param string $format 输出日期格式
|
|
|
* @return string 返回格式化的日期
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function datetime($time, $format = 'Y-m-d H:i:s')
|
|
|
@@ -315,7 +315,7 @@ if (!function_exists('data_auth_sign')) {
|
|
|
* 数据签名认证
|
|
|
* @param $data 数据源
|
|
|
* @return string
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function data_auth_sign($data)
|
|
|
@@ -341,7 +341,7 @@ if (!function_exists('decrypt')) {
|
|
|
* @param string $str 解密字符串
|
|
|
* @param string $key 解密KEY
|
|
|
* @return mixed
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function decrypt($str, $key = 'p@ssw0rd')
|
|
|
@@ -364,7 +364,7 @@ if (!function_exists('encrypt')) {
|
|
|
* @param string $str 加密字符串
|
|
|
* @param string $key 加密KEY
|
|
|
* @return string
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function encrypt($str, $key = 'p@ssw0rd')
|
|
|
@@ -386,7 +386,7 @@ if (!function_exists('export_excel')) {
|
|
|
* @param string $file_name 文件名
|
|
|
* @param array $title 标题
|
|
|
* @param array $data 数据源
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function export_excel($file_name, $title = [], $data = [])
|
|
|
@@ -423,7 +423,7 @@ if (!function_exists('ecm_define')) {
|
|
|
* 定义常量(读取数组或引用文件)
|
|
|
* @param $value 数据源
|
|
|
* @return bool
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function ecm_define($value)
|
|
|
@@ -451,7 +451,7 @@ if (!function_exists('format_time')) {
|
|
|
* 格式化时间段
|
|
|
* @param int $time 时间戳
|
|
|
* @return string 输出格式化时间
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_time($time)
|
|
|
@@ -483,7 +483,7 @@ if (!function_exists('format_bytes')) {
|
|
|
* @param int $size 字节大小
|
|
|
* @param string $delimiter 分隔符
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_bytes($size, $delimiter = '')
|
|
|
@@ -503,7 +503,7 @@ if (!function_exists('format_yuan')) {
|
|
|
* 以分为单位的金额转换成元
|
|
|
* @param int $money 金额
|
|
|
* @return string 返回格式化的金额
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_yuan($money = 0)
|
|
|
@@ -522,7 +522,7 @@ if (!function_exists('format_cent')) {
|
|
|
* 以元为单位的金额转化成分
|
|
|
* @param $money 金额
|
|
|
* @return string 返回格式化的金额
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_cent($money)
|
|
|
@@ -539,7 +539,7 @@ if (!function_exists('format_bank_card')) {
|
|
|
* @param string $card_no 银行卡号
|
|
|
* @param bool $is_format 是否格式化
|
|
|
* @return string 输出结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_bank_card($card_no, $is_format = true)
|
|
|
@@ -567,7 +567,7 @@ if (!function_exists('format_mobile')) {
|
|
|
* 格式化手机号码
|
|
|
* @param string $mobile 手机号码
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function format_mobile($mobile)
|
|
|
@@ -582,7 +582,7 @@ if (!function_exists('get_random_code')) {
|
|
|
* 获取指定位数的随机码
|
|
|
* @param int $num 随机码长度
|
|
|
* @return string 返回字符串
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function get_random_code($num = 12)
|
|
|
@@ -606,7 +606,7 @@ if (!function_exists('get_password')) {
|
|
|
* 获取双MD5加密密码
|
|
|
* @param string $password 加密字符串
|
|
|
* @return string 输出MD5加密字符串
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function get_password($password)
|
|
|
@@ -622,7 +622,7 @@ if (!function_exists('get_order_num')) {
|
|
|
* 生成订单号
|
|
|
* @param string $prefix 订单前缀(如:JD-)
|
|
|
* @return string 输出订单号字符串
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function get_order_num($prefix = '')
|
|
|
@@ -641,7 +641,7 @@ if (!function_exists('getter')) {
|
|
|
* @param string $field 字段名称
|
|
|
* @param string $default 默认值
|
|
|
* @return mixed|string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function getter($data, $field, $default = '')
|
|
|
@@ -661,7 +661,7 @@ if (!function_exists('get_zodiac_sign')) {
|
|
|
* @param $month 月份
|
|
|
* @param $day 日期
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function get_zodiac_sign($month, $day)
|
|
|
@@ -701,7 +701,7 @@ if (!function_exists('get_image_url')) {
|
|
|
* 获取图片地址
|
|
|
* @param $image_url 图片地址
|
|
|
* @return string 返回图片网络地址
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function get_image_url($image_url)
|
|
|
@@ -715,7 +715,7 @@ if (!function_exists('get_hash')) {
|
|
|
/**
|
|
|
* 获取HASH值
|
|
|
* @return string 返回hash字符串
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function get_hash()
|
|
|
@@ -733,7 +733,7 @@ if (!function_exists('get_server_ip')) {
|
|
|
/**
|
|
|
* 获取服务端IP地址
|
|
|
* @return string 返回IP地址
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function get_server_ip()
|
|
|
@@ -758,7 +758,7 @@ if (!function_exists('get_client_ip')) {
|
|
|
* @param int $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
|
|
|
* @param bool $adv 否进行高级模式获取(有可能被伪装)
|
|
|
* @return mixed 返回IP
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function get_client_ip($type = 0, $adv = false)
|
|
|
@@ -798,7 +798,7 @@ if (!function_exists('get_guid_v4')) {
|
|
|
* 获取唯一性GUID
|
|
|
* @param bool $trim 是否去除{}
|
|
|
* @return string 返回GUID字符串
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function get_guid_v4($trim = true)
|
|
|
@@ -838,7 +838,7 @@ if (!function_exists('is_email')) {
|
|
|
* 判断是否为邮箱
|
|
|
* @param string $str 邮箱
|
|
|
* @return false 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function is_email($str)
|
|
|
@@ -854,7 +854,7 @@ if (!function_exists('is_mobile')) {
|
|
|
* 判断是否为手机号
|
|
|
* @param string $num 手机号码
|
|
|
* @return false 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function is_mobile($num)
|
|
|
@@ -870,7 +870,7 @@ if (!function_exists('is_zipcode')) {
|
|
|
* 验证邮编是否正确
|
|
|
* @param string $code 邮编
|
|
|
* @return false 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function is_zipcode($code)
|
|
|
@@ -886,7 +886,7 @@ if (!function_exists('is_idcard')) {
|
|
|
* 验证身份证是否正确
|
|
|
* @param string $idno 身份证号
|
|
|
* @return bool 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function is_idcard($idno)
|
|
|
@@ -945,7 +945,7 @@ if (!function_exists('is_empty')) {
|
|
|
* 判断是否为空
|
|
|
* @param $value 参数值
|
|
|
* @return bool 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/5
|
|
|
*/
|
|
|
function is_empty($value)
|
|
|
@@ -982,7 +982,7 @@ if (!function_exists('mkdirs')) {
|
|
|
* @param string $dir 需要创建的目录路径
|
|
|
* @param int $mode 权限值
|
|
|
* @return bool 返回结果true或false
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function mkdirs($dir, $mode = 0777)
|
|
|
@@ -1004,7 +1004,7 @@ if (!function_exists('rmdirs')) {
|
|
|
* @param string $dir 文件夹路径
|
|
|
* @param bool $rmself 是否删除本身true或false
|
|
|
* @return bool 返回删除结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function rmdirs($dir, $rmself = true)
|
|
|
@@ -1035,7 +1035,7 @@ if (!function_exists('copydirs')) {
|
|
|
* 复制文件夹
|
|
|
* @param string $source 原文件夹路径
|
|
|
* @param string $dest 目的文件夹路径
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function copydirs($source, $dest)
|
|
|
@@ -1069,7 +1069,7 @@ if (!function_exists('message')) {
|
|
|
* @param array $data 结果数据
|
|
|
* @param int $code 编码
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/28
|
|
|
*/
|
|
|
function message($msg = "操作成功", $success = true, $data = [], $code = 0)
|
|
|
@@ -1090,7 +1090,7 @@ if (!function_exists('num2rmb')) {
|
|
|
* 数字金额转大写
|
|
|
* @param float $num 金额
|
|
|
* @return string 返回大写金额
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function num2rmb($num)
|
|
|
@@ -1150,7 +1150,7 @@ if (!function_exists('object_array')) {
|
|
|
* 对象转数组
|
|
|
* @param $object 对象
|
|
|
* @return mixed 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function object_array($object)
|
|
|
@@ -1166,7 +1166,7 @@ if (!function_exists('parse_attr')) {
|
|
|
* 配置值解析成数组
|
|
|
* @param string $value 参数值
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/6/6
|
|
|
*/
|
|
|
function parse_attr($value = '')
|
|
|
@@ -1195,7 +1195,7 @@ if (!function_exists('strip_html_tags')) {
|
|
|
* @param string $str 字符串
|
|
|
* @param int $length 长度
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function strip_html_tags($str, $length = 0)
|
|
|
@@ -1229,7 +1229,7 @@ if (!function_exists('sub_str')) {
|
|
|
* @param bool $suffix 截断显示字符
|
|
|
* @param string $charset 编码格式
|
|
|
* @return string 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function sub_str($str, $start = 0, $length = 10, $suffix = true, $charset = "utf-8")
|
|
|
@@ -1259,7 +1259,7 @@ if (!function_exists('save_image')) {
|
|
|
* @param string $img_url 网络图片地址
|
|
|
* @param string $save_dir 图片保存目录
|
|
|
* @return string 返回路径
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function save_image($img_url, $save_dir = '/')
|
|
|
@@ -1298,7 +1298,7 @@ if (!function_exists('create_image_path')) {
|
|
|
* @param string $image_ext 图片后缀
|
|
|
* @param string $image_root 图片存储根目录路径
|
|
|
* @return string 返回文件目录
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function create_image_path($save_dir = "", $image_ext = "", $image_root = IMG_PATH)
|
|
|
@@ -1329,7 +1329,7 @@ if (!function_exists('save_remote_image')) {
|
|
|
* @param string $img_url 网络图片地址
|
|
|
* @param string $save_dir 保存目录
|
|
|
* @return bool|string 图片路径
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function save_remote_image($img_url, $save_dir = '/')
|
|
|
@@ -1361,7 +1361,7 @@ if (!function_exists('save_image_content')) {
|
|
|
* @param bool $title 标题
|
|
|
* @param string $path 图片存储路径
|
|
|
* @return bool|int 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2020-04-21
|
|
|
*/
|
|
|
function save_image_content(&$content, $title = false, $path = 'article')
|
|
|
@@ -1401,7 +1401,7 @@ if (!function_exists('upload_image')) {
|
|
|
* @param $request 网络请求
|
|
|
* @param string $form_name 文件表单名
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function upload_image($request, $form_name = 'file')
|
|
|
@@ -1475,7 +1475,7 @@ if (!function_exists('upload_file')) {
|
|
|
* @param $request 网络请求
|
|
|
* @param string $form_name 文件表单名
|
|
|
* @return array 返回结果
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function upload_file($request, $form_name = 'file')
|
|
|
@@ -1550,7 +1550,7 @@ if (!function_exists('widget')) {
|
|
|
* 如Home.Common就代表Widget目录下的Home/Common.php这个widget。
|
|
|
* @param $widgetName 组件名称
|
|
|
* @return bool|mixed
|
|
|
- * @author 牧羊人
|
|
|
+ * @author wesmiler
|
|
|
* @date 2019/5/23
|
|
|
*/
|
|
|
function widget($widgetName)
|