# BaseLib **Repository Path**: vteipjuq/base-lib ## Basic Information - **Project Name**: BaseLib - **Description**: BaseLib 基础库有常用的函数和类库。参数验证的规则和基类。异常抛出基类 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-09-28 - **Last Updated**: 2023-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BaseLib #### 介绍 BaseLib 基础库常用的函数和类库,40个常用的函数。参数验证和异常抛出基础函数。 #### 本插件只支持laravel #### 安装教程
安装 [//]: # (我是注释) ``` 添加指定包 composer require raymond/baselib 更新指定包 composer update raymond/baselib 移除指定的包 composer remove raymond/baselib 或删除vendor目录中的raymond 添加测式包:composer require "raymond/baselib:dev-master" -vvv ```
发布配置文件到config目录下面(可选): ``` php artisan vendor:publish ```
config/app.php中加入如下代码: ``` 'providers' => [ Raymond\BaseLib\BaseLibServiceProvider::class, ] 'aliases' => [ 'BaseLib' => Raymond\BaseLib\BaseLib::class, ] ```
控制器中引用: ``` use BaseLib; ```
#### 使用说明 ###### 常用函数 > 调用方法:类名::函数名 ,也可以BaseLib::common()->getlasttime()这种方法调用也可以 ``` 例:BaseLib::common()->getlasttime('2020-10-09 09:14'); ```
> 计算时间: BaseLib::get_last_time(2020-10-09 09:14); 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 日期字符串(例:2020-10-09 09:14)
> 手机号码验证: BaseLib::is_phone(15610032203); 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 手机号(例:15610032203)
> 手机号隐藏中间4位: BaseLib::substr_mobile(15610032203) 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 手机号(例:15610032203)
> curl get 请求: BaseLib::http_get(url); 名称 | 是否必须 | 备注 :---: | :---: | :---: url | true | url(例:http://www.baidu.com)
> curl post 请求: BaseLib::http_post(url,data); 名称 | 是否必须 | 备注 :---: | :---: | :---: url | true | url(例:http://www.baidu.com) data | true | 数组参数['id'=>1,'name'=>'张飞']
> 对emoji表情转义: BaseLib::emoji_encode(); 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 表情字符串
> 对emoji表情转反义: BaseLib::emoji_decode(); 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 表情字符串
> 判断字符串是否全是英文: BaseLib::is_english(); 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 字符串
> 字符串截取并且超出显示省略号: BaseLib::subtext(); 名称 | 是否必须 | 备注 :---: | :---: | :---: text | true | 字符串 length | false | 字符串长度
> 字符串截取: BaseLib::get_str_truncate(); 名称 | 是否必须 | 备注 :---: | :---: | :---: text | true | 字符串 length | false | 字符串长度 etc | false | 要替换的字符串
> 获取随机字符串: BaseLib::random(); 名称 | 是否必须 | 备注 :---: | :---: | :---: length | false | 字符串长度 type | false | 类型 convert | false | 转换大小写 1大写 0小写
> 判断数组类型参数是否含有空元素值: BaseLib::is_arraynull(); 名称 | 是否必须 | 备注 :---: | :---: | :---: arr | true | 数组
> utf-8转gbk: BaseLib::gbk(); 名称 | 是否必须 | 备注 :---: | :---: | :---: str | true | 字符串
> gbk转utf8: BaseLib::utf8(); 名称 | 是否必须 | 备注 :---: | :---: | :---: str | true | 字符串
> 正则验证邮箱地址: BaseLib::match_email() 名称 | 是否必须 | 备注 :---: | :---: | :---: email | true | 邮箱
> 查询字符是否存在于某字符串: BaseLib::str_exists() 名称 | 是否必须 | 备注 :---: | :---: | :---: haystack | true | 字符串 needle | true | 要查找的字符
> 检测输入中是否含有特殊字符: BaseLib::is_badword() 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 字符串
> 处理json字符中的特殊字符: BaseLib::get_json_to_arr() 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | json字符串
> 非法字符过滤函数: BaseLib::has_unsafeword() 名称 | 是否必须 | 备注 :---: | :---: | :---: string | true | 字符串
> 判断是否是微信浏览器还是企业微信浏览器: BaseLib::is_wxbrowser() 名称 | 是否必须 | 备注 :---: | :---: | :---: 无 | 无 | 无
> 判断是否是企业微信浏览器: BaseLib::is_wx_company() 名称 | 是否必须 | 备注 :---: | :---: | :---: 无 | 无 | 无
> 判断两个字符串是否相等: BaseLib::string_equal() 名称 | 是否必须 | 备注 :---: | :---: | :---: str1 | true | 字符串 str2 | true | 字符串
> 随机验证码: BaseLib::get_random() 名称 | 是否必须 | 备注 :---: | :---: | :---: length | false | 生成随机数长度,默认为6
> 压缩文件: BaseLib::zip() 名称 | 是否必须 | 备注 :---: | :---: | :---: files | true | 待压缩文件 filePath | true | 输出文件路径 【绝对文件地址】
> zip解压方法: BaseLib::unzip() 名称 | 是否必须 | 备注 :---: | :---: | :---: filePath | true | 压缩包所在地址 【绝对文件地址】 path | true | 解压路径 【绝对文件目录路径】
> 二维数组去重: BaseLib::array_unset_repeat() 名称 | 是否必须 | 备注 :---: | :---: | :---: arr | true | 数组 key | true | 判断的键值
> 二维数组合并重复项: BaseLib::array_restruct() 名称 | 是否必须 | 备注 :---: | :---: | :---: arr | true | 数组 key | true | 判断的键值
> 判断字符串是否在数组中: BaseLib::for_in_array() 名称 | 是否必须 | 备注 :---: | :---: | :---: str | true | 判定的字符串 arr | true | 数组
> 获取客户端IP: BaseLib::get_ip() 名称 | 是否必须 | 备注 :---: | :---: | :---: 无 | 无 | 无
> 自动生成密码: BaseLib::generate_password() 名称 | 是否必须 | 备注 :---: | :---: | :---: length | true | 密码长度 strength | true | 1:加入大写字母BDGHJLMNPQRSTVWXZ,2:加入AEUY,4:加入数字,8:加入特殊字符'@#$%'
> 检查密码长度是否符合规定: BaseLib::is_password() 名称 | 是否必须 | 备注 :---: | :---: | :---: password | true | 密码
> 人民币数字小写转大写: BaseLib::rmb_format() 名称 | 是否必须 | 备注 :---: | :---: | :---: money | true | 人民币数值 int_unit | false | 币种单位,默认"元",有的需求可能为"圆" is_round | false | 是否对小数进行四舍五入 is_extra_zero | false | 是否对整数部分以0结尾,小数存在的数字附加0,比如1960.30
> 返回格式化数字: BaseLib::number_format_plus() 名称 | 是否必须 | 备注 :---: | :---: | :---: number | true | 待格式化数字 decimals | false | 保留小数位数,默认2位 dec_point | false | 整数和小数分隔符号 thousands_sep | false | 整数部分每三位数读分隔符号
> 转换时间戳为常用的日期格式: BaseLib::trans_time() 名称 | 是否必须 | 备注 :---: | :---: | :---: timestamp | true | 时间戳
> 银行卡号格式检测: BaseLib::chk_card() 名称 | 是否必须 | 备注 :---: | :---: | :---: card | true | 卡号
> 根据身份证号计算性别: BaseLib::get_gender() 名称 | 是否必须 | 备注 :---: | :---: | :---: id | true | 身份证号
> 检测姓名中文格式: BaseLib::chk_chinese() 名称 | 是否必须 | 备注 :---: | :---: | :---: name | true | 字符串
> 将数组转换成xml: BaseLib::arr_xml() 名称 | 是否必须 | 备注 :---: | :---: | :---: arr | true | 数组
> 将xml转为array: BaseLib::xml_arr() 名称 | 是否必须 | 备注 :---: | :---: | :---: xml | true | xml字符串
> 根据过期时间判断剩余的天数: BaseLib::check_remaining_days() 名称 | 是否必须 | 备注 :---: | :---: | :---: expire_time | true | 时间戳
> 数组编码转换: BaseLib::arr_iconv() 名称 | 是否必须 | 备注 :---: | :---: | :---: arr | true | 待处理的数组 in_charset | true | 输入编码 out_charset | true | 输出编码
> 获取文件扩展名(后缀): BaseLib::get_extension() 名称 | 是否必须 | 备注 :---: | :---: | :---: filename | true | 文件名
> 列出目录下的文件名: BaseLib::listDirFiles() 名称 | 是否必须 | 备注 :---: | :---: | :---: DirPath | true | 目录
> 检查目标文件夹是否存在,如果不存在则自动创建该目录: BaseLib::make_dir() 名称 | 是否必须 | 备注 :---: | :---: | :---: folder | true | 目录路径。不能使用相对于网站根目录的URL
> 滤器laravel request中请求参数的数组中的多余参数: BaseLib::params_filter() 名称 | 是否必须 | 备注 :---: | :---: | :---: request | true | 数组 key | false | 要删除的数组下标(可以不传)例:['id','name']
##### 生成海报: BaseLib::create_poster() 名称 | 是否必须 | 备注 :---: | :---: | :---: config | true | 海报配置信息,类型为数组 filename | true | 海报保存路径 > config 名称 | 是否必须 | 备注 :---: | :---: | :---: text | false | 文字,类型为数组 image | false | 图片,类型为数组 background | true | 背景图,类型为数组 > text 名称 | 是否必须 | 备注 :---: | :---: | :---: text | true | 文字 left | false | 左边距 top | false | 上边距 fontSize | false | 字号 fontColor | false | 字体颜色 fontPath | false | 字体路径 > image 名称 | 是否必须 | 备注 :---: | :---: | :---: url | true | 图地址 width | false | 宽度 height | false | 高度 left | false | 左边距 right | false | 右边距 top | false | 上边距 bottom | false | 下边距 opacity | false | 透明度 radius | false | 圆角 > background 名称 | 是否必须 | 备注 :---: | :---: | :---: url | true | 背景图地址 radius | false | 圆角 ``` $config = [ //文字 'text'=>[ ['text'=>'昵称','left'=>182,'top'=>105,'fontSize'=>18,'fontColor'=>'255,0,0', 'angle'=>0,], ['text'=>'张冰冰','left'=>182,'top'=>205,'fontSize'=>18,'fontColor'=>'255,0,0','angle'=>0,] ], //图片 'image'=> [ ['url' => 'http://local.l56.cn/img/qrcode.png','stream' => 0,'left' => 380,'top' => -380,'right' => 0,'bottom' => 0,'width' => 260,'height' => 260,'opacity' => 100,'radius' => 100,], ['url'=>'http://local.l56.cn/img/mendian.jpg','left'=>320,'top'=>70,'right'=>0,'stream'=>0,'bottom'=>0,'width'=>155,'height'=>155,'opacity'=>100,], ], //背景图 'background' => ['bg'=>'http://local.l56.cn/img/bg.png'] ]; $filename =dirname(dirname(dirname(dirname(__FILE__)))).'/public/img/'. time() . '.png'; BaseLib::create_poster($config,$filename); ```
##### api返回信息 ###### 默认的返回结构 > 正确返回 BaseLib::success(); 名称 | 是否必须 | 备注 :---: | :---: | :---: data | true | 数组,例:['info'=>'','msg'=>'','data'=>''],info和msg可以不传,默认:使用的config/errorInfo.php中的public_succ。修改的话用msg传public_add_fail。info中传提示信息 ``` $data=['id'=>1,'name'=>'张飞']; 例1:BaseLib::success([data'=>$data]); 例2:BaseLib::success(['msg'=>'public_add_fail','info'=>'成功',data'=>$data]); ```
> 错误返回 BaseLib::error(); 名称 | 是否必须 | 备注 :---: | :---: | :---: data | true | 数组,例:['info'=>'','msg'=>'','data'=>''],info和msg可以不传,默认:使用的config/errorInfo.php中的public_succ。修改的话用msg传public_add_fail。info中传提示信息 ``` $data=['id'=>1,'name'=>'张飞']; 例1:BaseLib::error([data'=>$data]); 例2:BaseLib::error(['msg'=>'public_add_fail','info'=>'错误',data'=>$data]); ```
###### 自定义的的返回结构 ``` 成功 BaseLib::return_msg(); 失败 BaseLib::return_err(); 1.可以在配置文件中修改返回结构体return_succ,return_err 2.参数根据配置中的结构体传值,必须是数组 ```
> 调用方法:类名::函数名 ,也可以BaseLib::result()->success()这种方法调用也可以 ``` 例:BaseLib::result()->error();BaseLib::result()->return_msg(); ```
###### 参数验证 > BaseLib::goCheck(); 名称 | 是否必须 | 备注 :---: | :---: | :---: rule | true | 验证规则 message | true | 错误信息 ``` 成功:['state'=>'ok','info'=>''] 失败:['state'=>'err','info'=>'错误信息'] ```
> BaseLib::params->goCheck()参数同上
###### 异常抛出 > BaseLib::handler(); 名称 | 是否必须 | 备注 :---: | :---: | :---: request | true | render函数中的参数 exception | true | render函数中的参数 ``` app/Exceptions/Handler.php中的render函数 ```
> BaseLib::exceptions->handler()参数同上
###### jwt-token > BaseLib::handler(); 名称 | 是否必须 | 备注 :---: | :---: | :---: request | true | render函数中的参数 exception | true | render函数中的参数 ``` app/Exceptions/Handler.php中的render函数 ```
> BaseLib::exceptions->handler()参数同上