助手函数

支持依赖注入的函数调用before_calling_methods

class CustomClass{
    public function method($name=''){
        echo 'CustomClass->method:'.$name.PHP_EOL;
    }
}

class MyClass{
    public function __construct()
    {
        // 传入自定义参数
        before_calling_methods($this, 'initialize',[CustomClass::class, function()
        {
            echo 'call callable'.PHP_EOL;
        },'this_is_test']);

        // 不传参数会自动去识别和解析
        // before_calling_methods($this, 'initialize');
    }

    public function initialize(CustomClass $custom, callable $callback, string $test = 'test', int $age = 18, string $name = '张三'){
        $callback && $callback();
        $custom->method($name);
    }

    public function run(){
        echo 'MyClass->run'.PHP_EOL;
    }

}

$class = new MyClass();
$class->run();

打印

call callable
CustomClass->method:张三
MyClass->run

session 助手函数

获取某个session

i_session('name');

获取所有session

第一参数为空
i_session('');
or
i_session(null);
或者使用对象获取
i_session()->all()

设置session

i_session('name', 'value');
or 设置过期时间(单位:秒)
i_session('name', 'value',10);  // 10s 后过期

批量设置
i_session(['name1' => 'value1','name2' => 'value2']);

删除session

// 删除某个session
i_session('name', null);
or 删除所有
i_session()->clear();

判断某个session是否存在或是否过期

i_session()->exists('name');

cache 助手函数

cache($name, $value = null, $expiry = '+1 day')

文章去除标签截取文字

truncate(string $string, int $start = 0, int $length = 150, bool $append = true): string

移除字符串中的 emoji 表情

remove_str_emoji($str): string

判断字符串中是否含有 emoji 表情

check_str_exists_emoji($str): bool

检测是否为爬虫

is_crawler(bool $returnName = false, bool $forbidUnknownSpider = false)

把彩色图片转换为灰度图片,支持透明色

img_to_gray($imgFile = '', $saveFile = '')

删除文件夹

del_dirs(string $dirname, bool $delSelf = true): bool

判断文件夹是否为空

dir_is_empty(string $dir): bool

递归创建目录

create_dir(string $dir, int $permissions = 0755): bool

获取文件的大小

get_filesize(string $filePath): string

文件字节转具体大小

byteFormat(int $size, int $dec = 2): string

输出json后继续在后台执行指定方法

response_and_continue(array $responseDara, string|array $backendFun, array $backendFunArgs = [], int $setTimeLimit = 0)

数字转换为中文

num_to_cn(float|int|string $number, bool $mode = true, bool $sim = true): string

数字转换为英文

num_to_word(float|int|string $number): string

二维数组 转为 树形结构 和 tree2arr 互逆

arr2tree(array $array, int $superior_id = 0, string $superior_key = 'pid', string $primary_key = 'id', string $son_key = 'son'): array

树形结构 转为 二维数组 和 arr2tree 互逆

tree2arr(array $array, string $son_key = 'son', int $level = 0): array

页面直接输出图片

show_img($imgFile = '')

字符串自动转utf8编码

string_to_utf8(string $str = '')

字符串自动转gbk编码

string_to_gbk(string $str = '')

对json数据格式化输入展示 [转化为json格式,并格式化样式]

show_json(array $array = [])

判断是否为身份证号

is_idcard($idCard): bool

去除所有html标签

detach_html($string): string

生成随机字符串

str_rand(int $length = 6, string $tack = ''): string

微信解密

wx_decrypt_data($appId, $encryptedData, $iv, $sessionKey)

图片转 base64

img_base64($image_file): string

base64图片转文件图片

base64_to_image($base64_image_content, $path)

判断是否为json 字符串

is_json($string): bool

下划线转驼峰

convert_underline(string $str)

驼峰转下划线

underline_convert(string $str): string

验证等保测2级评密码强度

check_pass_strength(string $password = ''): bool

构建form表单并提交数据

满足提交大量表单会被数据长度等限制的问题,[header 携带大量数据请求的可行性方案]
buildRequestFormAndSend(string $url, array $data = [], string $method = 'post'): string

对象转数组

obj2Arr($array)

根据微秒时间和随机数生成 10位 uuid

uuid(): string

将任意进制的数值转换为另一个进制的数值

base_convert_any(string $number, int $from_base, int $to_base): string|false

下载url文件

download_url_file($url = '')

字符串加密和解密

str_en_code(string $string, string $operation = 'en', int|string $expiry = 312206400, string $key = ''): bool|string

获取对象里面受保护属性的值

get_protected_value($obj, $name): mixed

使用反射 修改对象里面受保护属性的值

set_protected_value($obj, $filed, $value)

json_decode 加强版

主要是为了了处理 json 字符串中包含了 " 和 \ 转义字符导致无法解析的问题
json_decode_plus(string $jsonStr, $assoc = null): mixed

判断当前浏览器是否为移动端

is_mobile(): bool