- 广场
-
- 搜索中...
- 本文档内搜索
zxf/tools 使用手册
助手函数
支持依赖注入的函数调用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
获取原始请求内容
能自动解析xml 数据
/**
* 获取原始请求内容
*
* @param bool $returnOriginal 是否返回原始数据;默认为 true;
* true:返回原始数据
* false:返回解析后的数据;
*
* @param bool $getDataType 是否获取数据类型;默认为 false;
* true:返回数据类型;
* false:只返回请求数据;
*
* @return array|string|null
*/
function get_raw_input(bool $returnOriginal = true, bool $getDataType = false): array|string|null
打印数据流
/**
* 数据流 方式操作数据,不用等待操作结束才打印数据
*
* @param Closure $callback ($next)
* $next() 执行下一个回调函数
*
* @throws Exception
*
* @example stream_output(function ($next){
* // 打印或处理数据
* $next();
* $next('这是输出的string');
* $next->info('这是输出的string');
* $next->error('这是输出的string');
* $next->warning('这是输出的string');
* $next->success('这是输出的string');
* });
*/
function stream_output(\Closure $callback): void
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 互逆
/**
* 二维数组 转为 树形结构 [tip:和 tree_to_array 可互相转化]
*
* @param array $array 二维数组
* @param int $parentId 父级键的值;eg:0
* @param string $keyField 父级主键字段名称;eg:id
* @param string $pidField 关联父级使用的键名;eg:pid [使用pid去关联id]
* @param string $childField 定义包含子集的键名;eg:children
*/
function array_to_tree(array $array, int $parentId = 0, string $keyField = 'id', string $pidField = 'pid', string $childField = 'children'): array
树形结构 转为 二维数组 和 arr2tree 互逆
/**
* 树形结构 转为 二维数组 [tip:和 array_to_tree 可互相转化]
*
* @param array $array 树形数据
* @param string $childField 子级的键名
* @param int $rootId 定义根ID的值
* @param string $keyField 定义主键的字段名
* @param string $pidField 定义父级字段名
*/
function tree_to_array(array $array, string $childField = 'children', int $rootId = 0, string $keyField = 'id', string $pidField = 'pid'): 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
判断是否为xml 字符串
is_xml($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