Z-BlogPHP函数列表详解
Z-BlogPHP 封装了众多辅助函数,文件路径为:zb_system/function/c_system_common.php。还有一些在zb_system/function/c_system_function.php,不过除了前两个外不太需要自行调用;接下来会介绍一些相对常用的,具体定义可在文件中搜索查看。
一、GetList()
通过 GetList 可以获取自定义的文章列表,如指定分类的最新文章、置顶文章等等;该函数是 $zbp->GetPostList() 的上层封装,主要供内部路由调用,建议直接使用 $zbp->GetPostList() 或自行按需封装;
array 参数如下
二、GetPost()
通过 GetPost 可以获取指定的文章或页面或是其它类型的 Post 表的数据;
array 参数如下
三、GetVars()
可快速获取 GET/POST/COOKIE 等传值;
不存在时将默认返回null,无需isset($_GET[‘act’])判断;
可通过第三个可选参数决定默认返回值;
其实第二个参数大小写不敏感,但是不知道为什么习惯上还是大写;
四、GetValueInArray()
五、GetImagesFromHtml()
从 HTML 中获取所有图片;
参数及返回值;
六、访问来源信息
七、获取空间环境信息
处部分信息会在初始化时赋值给常量,可直接使用,见「zb_system\function\c_system_base.php」
八、common.php函数
1、HTTP服务器及系统检测函数
获取 Scheme:GetScheme($array)
获取服务器:GetWebServer()
获取操作系统:GetSystem()
获取 PHP 解析引擎:GetPHPEngine()
PHP Version:GetPHPVersion()
获取当前网站地址:GetCurrentHost($blogpath, &$cookiesPath)
设置 http 状态头:SetHttpStatusCode($number, $force = false)
用 script 标签进行跳转:RedirectByScript($url)
302 跳转:Redirect302($url)
http 302 跳转:Redirect($url)
301 跳转:Redirect301($url)
输出 Http404:Http404()
输出 Http500:Http500()
输出 Http503:Http503()
设置 304 缓存头:Http304($filename, $time)
获取客户端 IP:GetGuestIP()
获取客户端 Agent:GetGuestAgent()
获取请求来源 URL:GetRequestUri()
获取请求 Script Name:GetRequestScript()
获取指定时区名:GetTimeZoneByGMT($z)
获得系统信息:GetEnvironment($more = false)
拿到后台的 CSP Heaeder:GetBackendCSPHeader()
检查移动端:zbp_is_mobile()
检查移动端:CheckIsMobile()
通过 URL 获取远程页面内容:GetHttpContent($url)
2、文件及目录处理函数
自动加载类文件:AutoloadClass($className)
管理自动加载类文件的目录:AddAutoloadClassDir($dir, $prepend = false)
通过文件获取应用 URL 地址:plugin_dir_url($file)
通过文件获取应用目录路径:plugin_dir_path($file)
获取目录下文件夹列表(递归):GetDirsInDir_Recursive($dir)
获取目录下指定类型文件列表(递归):GetFilesInDir_Recursive($dir, $type)
获取当前目录下文件夹列表:GetDirsInDir($dir)
获取当前目录下指定类型文件列:GetFilesInDir($dir, $type)
获取文件后缀名:GetFileExt($f)
获取文件权限:GetFilePermsOct($f)
获取文件权限(字符表达格式):GetFilePerms($f)
删除文件 BOM 头:RemoveBOM($s)
检查重复加载的:CheckIncludedFiles($file)
3、数组处理类函数
获取$_GET, $_POST 等数组的参数值:GetVars($name, $type = ‘REQUEST’, $default = null)
从一系列指定的环境变量获得参数值:GetVarsFromEnv($name, $source = ”, $default = ”)
解析 env:设置项目读取环境变量获得参数值:GetOptionVarsFromEnv($value)
拿到 ID 数组 by List 列表:GetIDArrayByList($array, $keyname = null)
判断数组是否已经有$key,如果没有就 set 一次$default:Array_Isset(&$array, $key, $default)
数组 转 对象:array_to_object($arr)
对象 转 数组:object_to_array($obj)
4、字符串处理类函数
分割 string 并取某项数据:SplitAndGet($string, $delimiter, $n = 0)
删除连续空格:RemoveMoreSpaces($s)
向字符串型的参数表加入一个新参数:AddNameInString($s, $name)
从字符串型的参数表中删除一个参数:DelNameInString($s, $name)
在字符串参数值查找参数:HasNameInString($s, $name)
验证字符串是否符合正则表达式:CheckRegExp($source, $para)
获取 UTF8 格式的字符串的子串:SubStrUTF8_Start($sourcestr, $start)
获取 UTF8 格式的字符串的子串:SubStrUTF8($sourcestr, $cutlength)
ZBP 版获取 UTF8 格式的字符串的子串:Zbp_SubStr($sourcestr, $start)
ZBP 版 StrLen:Zbp_StrLen($string)
ZBP 版 Strpos:Zbp_Strpos($haystack, $needle, $offset = 0)
ZBP 版 Stripos:Zbp_Stripos($haystack, $needle, $offset = 0)
截取 HTML 格式的 UTF8 格式的字符串的子串:SubStrUTF8_Html($source, $length)
获得一个只含数字字母和-线的 string:FilterCorrectName($s)
确认一个对象是否可被转换为 string:CheckCanBeString($obj)
实现 utf84mb4 的过滤:utf84mb_filter(&$sql)
清除一串代码内所有的 PHP 代码:RemovePHPCode($code)
中文与特殊字符友好的 JSON 编码:JsonEncode($arr)
UCS-2BE 转 UTF-8,解决 JSON 中文转码问题:Ucs2Utf8($matchs)
5、HTML 文本处理转换类函数
格式化字符串:FormatString($source, $para)
同上:TransferHTML($source, $para)
封装 HTML 标签:CloseTags($html)
对数组内的字符串进行 htmlspecialchars:htmlspecialchars_array($array)
递归转义 HTML 实体:RecHtmlSpecialChars(&$arr)
从 HTML 中获取所有图片:GetImagesFromHtml($html)
6、URL 判断处理类函数
构造带 Token 的安全 URL:BuildSafeURL($url, $appId = ”)
构造 cmd.php 的访问链接:BuildSafeCmdURL($paramters)
把 Url 前的 https:// 和 http:// 替换成 //:RemoveProtocolFromUrl($url)
判断 URL 是否为本地:CheckUrlIsLocal($url)
把 URL 中的 Host 转换为本地路径:UrlHostToPath($url)
rawurlencode 转义但不转义/:rawurlencode_without_backslash($s)
7、SWoole 及 Workerman 相关函数
将 swoole 和 workerman 下的$request 数组转换为$GLOBALS 全局数组:http_request_convert_to_global($request)
获取 swoole 或 workerman 或标准 php 环境下的原始 post data:get_http_raw_post_data(&$request = null)
8、错误输出及记录函数
以 JSON 形式输出错误信息(用于 ShowError 接口):JsonError4ShowErrorHook($errorCode, $errorString, $file, $line)
以 JSON 形式输出错误信息.(err code 为(int)0 认为是没有错误,所以把 0 转为 1):JsonError($errorCode, $errorString, $data)
当代码正常运行时,以 JSON 形式输出信息:JsonReturn($data)
XML-RPC 应答错误页面:RespondError($errorCode, $errorString = ”, $file = ”, $line = ”)
Script 脚本错误页面:ScriptError($errorCode, $errorText = ”, $file = ”, $line = ”)
记录日志:Logs($logString, $level = ‘INFO’, $source = ‘system’)
Logs 指定的变量的值:Logs_Dump()
9、系统其它类函数
初始化统计信息:RunTime_Begin()
输出页面运行时长:RunTime($isOutput = true)
获取 Guid:GetGuid()
获取随机的 sqlite 数据库名:GetDbName()
10、安全检测判断类函数
简易版本的字符串加扰函数:zbp_string_auth_code($data, $operation, $password, $additional = null)
验证 Web Token 是否合法:VerifyWebToken($webTokenString, $webTokenId, $key = ”)
创建 Web Token:CreateWebToken($webTokenId, $time, $key = ”)
检测来源是否合法,这包括 CSRF 检测,在开启增强安全模式时加入来源检测:CheckIsRefererValid()
验证 CSRF Token 是否合法:CheckCSRFTokenValid($fieldName = ‘csrfToken’, $methods = array(‘get’, ‘post’))
检测 HTTP Referer 是否合法:CheckHTTPRefererValid()
zbp 限流函数 (依赖 zbp_cache 插件):zbp_throttle($name = ‘default’, $max_reqs = 60, $period = 60)
九、加解密类函数
1.7.3 开始系统集成了 ZbpEncrypt 加密类
1、AES对称加密函数
2、RSA 非对称加密函数