# 函数
# 数组或字符输出
pr($str);
# 版本号
get_version()
对应 https://github.com/thefunpower/core 的version.php
# 获取本地include文件内容
get_include_content($local_file)
# 添加动作
add_action($name, $call,$level = 20)
# 执行动作
do_action($name, &$par = null);
# 自动加载主题
autoload_theme($name = "front")
# 跳转
jump($url)
# CDN地址
static_url()
需要配置
$config['cdn_url'] = [
'',
];
如果没有配置将返回本地host地址
# 输出json
json($data)
JSON输出前
do_action('end.data', $data);
JSON输出后或页面渲染后
do_action("end");
# 当前域名
host()
# 判断是命令行下
is_cli()
# 是否是POST请求
is_post()
# 是否是json格式
is_json($data)
# 加载css
css($file, $is_output = true)
# 加载 JS文件
js($file, $is_output = true)
# 数组转对象
array_to_object($arr)
# 对象转数组
object_to_array($obj)
# 取目录名
get_dir($name)
# 取后缀
get_ext($name)
返回全小写且不包含.
# 取文件名
get_name($name)
# 创建目录
create_dir_if_not_exists($arr = [])
支持数组或字符串,传入完整的本地路径
# 是否是本地环境
is_local()
# 取IP
get_ip()
# 当前时间datetime
now()
# 计算两点地理坐标之间的距离
get_distance($longitude1, $latitude1, $longitude2, $latitude2, $unit = 2, $decimal = 2)
$unit
单位 1:米 2:公里
$decimal
精度 保留小数位数
# 判断是否是ssl
is_ssl()
# 设置、获取cookie
cookie($name, $value = NULL, $expire = 0)
例:
//设置三年cookie
cookie('id',1,time()+86400*365*3);
//获取cookie
cookie('id')
# 删除cookie
remove_cookie($name)
# 时间区间
一般用不到
date_limit()
返回
min="1900-01-01" max="'.$max.'-12-31"
# 路径列表,支持文件夹下的子所有文件夹
get_deep_dir($path)
# 显示2位小数
price_format($yuan,$dot = 2)
# 返回错误信息,JSON格式
json_error($arr = [])
# 返回成功信息,JSON格式
json_success($arr = [])
# yaml转数组,数组转yaml格式
yaml($str)
# 加载theme下文件
view($name, $params = [])
# 前台当前主题
get_theme()
# 前台主题url
theme_url()
# 设置前台主题
set_theme($name)
# 设置后台主题
set_admin_theme($name)
# 后台主题url
admin_theme_url()
# 设置配置
set_config($title, $body)
# 获取配置
优先取数据库,未找到后取配置文件
get_config($title)
# elementui table序号
在vue method中添加
<?= element_index_method() ?>,
生成indexMethod(index)
<el-table-column type="index" label="序号" :index="indexMethod" width="50">
</el-table-column>
# 每页显示多少条记录
page_size($name)
# 显示下拉选择分页每页显示多少条
page_size_array()
# AES加密
$token = urlencode(aes_encode($d));
aes_encode($data, $key = '', $iv = '', $type = 'AES-128-CBC', $options = '')
$data
如果是数组需json_encode
配置config.ini.php
$config['aes_key'] = "";
$config['aes_iv'] = "";
# AES解密
$token = $_GET['token'];
$token = aes_decode($token);
pr($token);
# 翻译
lang($name, $val = [], $pre = 'app')
配置lang/app.php
return [
'welcome' => '你好{name}',
];
调用
<?= lang('welcome',['name'=>'test'])?>
# 搜索替换\n , ,空格
string_to_array($name,$array = '')
已替换
"\n",
",",
"、",
"|",
",",
chr(10),
# 返回两个时间点间的日期数组
get_dates($start, $end)
时间格式 Y-m-d
# 当前时间是周几
时间格式 Y-m-d
get_date_china($date)
# 多少时间之前
timeago($time)
# 请求是否是AJAX
is_ajax()
# 防止重复执行
cli_prevent_duplication($argv, $cmd = 'php cmd.php')
# 包含文件
import($file)
# 生成表单TOKEN,防止重复提交
<input type="hidden" name="form_token" value="<?=create_form_token()?>">
# 检测表单TOKEN
check_form_token(g('form_token'));
# 检测reffer是否正常,如异常返回JSON
check_reffer_with_json($allow_domain = [], $is_root = true)
# 检测reffer
返回true或false
check_reffer($allow_domain = [], $is_root = true)
# 取reffer
get_reffer($refer = '')
# 取主域名,如 admin.baidu.com返回baidu.com
get_root_domain($host = '')
# 取子域名,如admin.baidu.com返回admin
get_sub_domain($host = '')
# admin header
admin_header()
# admin footer
admin_footer()
# 格式化金额
format_money($money, $len = 2, $sign = '¥')
# 生成签名
sign_by_secret($params,$secret='',$array_encode = false)
# 设置当前语言
set_lang($lang = 'zh-cn')
# 生成URL包含host
create_url($url)
# block
BLOCK开始
block_start($name)
block_end()
get_block($name)
# ZIP解压
zip_extract($local_file,$extract_local_dir)
# 生成ZIP
zip_create($local_zip_file,$files = [])
加载pdf,自动判断是否使用了背景文字水印
pdf_auto($text = null)
无水印
pdf($font_size = 9,$default_config_option=[])
文字水印
pdf_watermark($text = null)
https://mpdf.github.io/
# 生成签名链接 [实验]
create_sample_sign_url($arr = [])
# 验证签名链接是否可用 [实验]
$exp_time
秒
verify_sample_sign_url($exp_time = 60)
# 检查签名防止篡改 [实验]
错误时返回 签名错误
signature_checker()
签名生成的通用步骤如下: 第一步:将参与签名的参数按照键值(key)进行字典排序 第二步:将排序过后的参数,进行key和value字符串拼接 第三步:将拼接后的字符串首尾加上app_secret秘钥,合成签名字符串 第四步:对签名字符串进行MD5加密,生成32位的字符串 第五步:将签名生成的32位字符串转换为大写
# 数组转tree
array_to_tree
array_to_tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0, $my_id = '')
输入$list
[
{id:1,pid:0,其他字段},
{id:2,pid:1,其他字段},
{id:3,pid:1,其他字段},
]
输出
[
[
id:1,
pid:0,
其他字段,
children:[
{id:2,pid:1,其他字段},
{id:3,pid:1,其他字段},
]
]
]