一、插件可开发目录
插件可开发目录即是已载入过插件的文件列表,目前包括以下三个文件:
- 根目录下的
api.php
user
目录下的index.php
和ajax.php
- 关于api.php调用静态 使用 api/xxxx
二、创建项目
1. 创建项目目录
在项目根目录中创建项目目录,例如 xfcs
。
2. 创建控制器
在项目目录 xfcs
中创建 controller
目录,并在其中创建 Index.php
控制器文件。
3. 编写控制器代码
<?php
namespace xfyzf\plugins\项目名\controller;
class Index {
public $priKey='如需授权请创建这个 获取前往 auth.daoh.top用户中心获取';
public $info = [
"name" =>'',//支付插件英文名称,需和目录名称一致,不能有重复
"showname" =>'',//支付插件显示名称
"author" =>'', //支付插件作者
'auth' =>false,//授权开关
'pwd' =>'',//明文 密码
'path' =>'',//授权效验文件 注意 必须唯一 结尾.ini
];
public function 随意() {
// 控制器方法内容
}
}
?>
4.config.json创建示例
{
"name": "",//支付插件英文名称,需和目录名称一致,不能有重复
"showname": "",//支付插件显示名称
"author": "", //支付插件作者
"link": "",//作者链接
"menu": {//如需前端目录适配可创建这个 数组
"name": "APP挂机",//目录名称
"url": "?p=appjk/msg=APP_Qrlist",//目录路由
"menu": "Qrlist"//目前仅支持 qrlist 对应 二维码管理
}
}
三、开发教程
1. 调用插件
在根目录下的 api.php
中,仅支持 POST 请求,请求参数如下:
p
: 插件目录/msg(任意)= 要载入的函数
示例代码:
<?php
$url = "https://host/api.php";
$post = array(
'p' => 'xfcs/msg=cs',
);
// 应该都能看懂吧,POST 传输 p = xfcs/msg=cs 即可载入对应的库
// 目录名 Core/class/xfyzf/plugins/xfcs/controller
class Index {
public function cs() {
// 控制器方法内容
}
}
?>
2. 在 user
目录下的 index.php
和 ajax.php
中
支持 POST 和 GET 请求,编写方法在插件的 index.php
中增加公共函数即可。
公共调用常量
pluginsassets
: 公共调用样式表,位于插件目录中的assets
目录。pluginstem
: 插件模板,位于插件目录中的view
目录。
四、模板常用函数说明
1.函数名称:alerttc
描述:
该函数用于在 PHP 中生成 JavaScript 弹窗提示信息,并在用户关闭提示框后跳转到指定页面。
注意事项:
- 当传入
$msg
参数时,将会生成带有提示信息的弹窗,并在用户关闭提示框后跳转到指定页面。 - 如果不传入
$msg
参数,则只会直接跳转到指定页面,不会生成弹窗提示信息。
参数:
$msg
(可选):要显示在弹窗中的提示信息。$url
(可选,默认值为 “index_min”):指定跳转的目标页面。
使用示例:
// 例 1:生成带有提示信息的弹窗,并在关闭后跳转到默认页面
alerttc("操作成功!");
// 例 2:生成带有提示信息的弹窗,并在关闭后跳转到指定页面
alerttc("请先登录!", "login");
// 例 3:直接跳转到默认页面,不生成弹窗提示信息
alerttc();
2.函数名称:minalerttc
描述:
该函数用于在 PHP 中生成 JavaScript 弹窗提示信息,并在用户关闭提示框后跳转到指定页面。
注意事项:
- 该函数会生成带有提示信息的弹窗,并在用户关闭提示框后跳转到指定页面。
参数:
$msg
:要显示在弹窗中的提示信息。
使用示例:
// 生成带有提示信息的弹窗,并在关闭后跳转到默认页面
minalerttc("操作成功!");
// 生成带有提示信息的弹窗,并在关闭后跳转到指定页面
minalerttc("请先登录!");
3.函数名称:sysmsg
描述:
该函数用于在 PHP 中生成系统提示信息页面,可用于显示各种提示信息。
注意事项:
- 如果
$send
参数为true
,则会以 JSON 格式返回提示信息,否则将以 HTML 页面形式显示提示信息。
参数:
$msg
:要显示的提示信息。$send
(可选,默认为false
):指定是否以 JSON 格式返回提示信息。
使用示例:
// 例 1:以 HTML 页面形式显示提示信息
sysmsg("<p>操作成功!</p>");
// 例 2:以 JSON 格式返回提示信息
sysmsg("请先登录!", true);
4、Mailbox_sending_template 该函数用于生成邮箱发送模板,可以根据传入的数据生成定制化的邮件内容。
注意事项
- 此函数用于生成包含标题、站点名称和用户信息的邮件模板。
- 可以通过调用
generateParagraphs()
函数来循环拼接邮件内容的段落。
使用示例
// 示例数据
$data = array(
'user' => '绪飞云',
'paragraphs' => array(
array(
'label' => '订单号:',
'value' => '123456',
'fontSize' => 16,
),
array(
'label' => '订单金额:',
'value' => '0',
),
// 可以继续添加更多的段落数据
)
);
// 示例标题
$title = '订单详情';
// 生成邮箱模板
$mailTemplate = Mailbox_sending_template($data, $title);
5、Splicing_form()
函数使用说明
功能
Splicing_form()
函数用于拼接表格,调用 Loop_splicing_form()
函数生成表格行。
注意事项
- 此函数用于生成包含一行表单数据的表格行。
- 如果需要添加样式,可以在传入的数据中提供
style
键,对应每个单元格的样式。
使用示例
// 示例数据
$data = array(
array(
'label' => '姓名:',
'value' => '绪飞云',
'style' => 'color: red;', // 示例样式
),
array(
'label' => '年龄:',
'value' => '30',
'style' => 'font-weight: bold;', // 示例样式
),
// 可以继续添加更多的表单数据
);
// 生成表格行
$tableRow = Splicing_form($data);
// 打印表格行
echo '<table>';
echo $tableRow;
echo '</table>';
?>
6、pay_passtemplate()
函数使用说明
功能
pay_passtemplate()
函数用于生成验证二级密码的模板页面。
注意事项
- 此函数用于生成一个带有密码输入框和确认按钮的页面,需要用户输入二级密码才能继续访问。
- 如果用户未输入正确的二级密码或未设置二级密码,则页面将停留在此处,不继续执行后续操作。
使用示例
// 调用函数验证二级密码
pay_passtemplate();
//同时 需要载入 二级密码 js
<script type="text/javascript" src="<?=userassets?>core_js/pay_pass.js"></script>
7、table_page()
函数使用说明
功能
table_page()
函数用于生成带有分页功能的表格页面导航。
注意事项
- 此函数用于生成带有首页、上一页、下一页、末页等分页链接的页面导航。
- 页面导航链接的生成基于传入的当前页数、总页数和最小URL参数。
使用示例
// 示例调用
$page = 1; // 当前页数
$pages = 10; // 总页数
$min_url = 'example'; // 最小URL参数
table_page($page, $pages, $min_url);
8、提示库Tips
使用说明
success以及error的使用
如需使用在头部 use Tips;
然后调用 Tips::success(‘这是一个文本内容’);最少需要传输一个参数 文本内容
参数解析
第一个 文本内容 第二个 标题 第三个 跳转链接 如不为空 则会 进行跳转 第四个 跳转时间 秒 默认2
error和success 一样
9、弹窗库Commontc
使用说明
1.类中所含 库 falsetc 、 truetc、alerttc
2.调用方式
第一个参数 msg 传入弹窗内容
第二个参数data 这个是异步函数(注意是js代码)
第三个参数 是send 为布尔值 如果 传入true 则不会终止 其他的程序执行反之则会 默认false
调用示例
<?php
use lib\Commontc;
Commontc::truetc("这是一个提示模型");
Commontc::truetc("这是一个带跳转的提示",rethreffun('./login'));
/*
rethreffun是一个 生成跳转的js代码 传入地址 即可 然后传入到 弹窗模型中
truetc 是成功的提示
falsetc 是失败的提示
alerttc 是一个弹窗
*/
?>
五、功能常用函数解析
1.get_curl()
函数使用说明
功能
get_curl()
函数用于执行 HTTP GET 或 POST 请求,并返回结果。
参数说明
$url
(string): 请求的 URL。$post
(mixed): 是否使用 POST 请求。如果需要发送 POST 请求,将要发送的数据作为字符串传递,否则为false
。$referer
(mixed): 请求的 Referer。如果不需要 Referer,设置为0
;如果需要自定义 Referer,传递自定义的 Referer 地址;如果需要使用默认 Referer,设置为1
。$cookie
(mixed): 请求的 Cookie。如果不需要 Cookie,设置为0
;如果需要发送 Cookie,传递要发送的 Cookie 字符串。$header
(bool): 是否返回响应头。如果需要返回响应头,设置为true
;否则为false
。$ua
(mixed): 请求的 User-Agent。如果不需要自定义 User-Agent,设置为0
;如果需要自定义 User-Agent,传递自定义的 User-Agent 字符串。$nobaody
(bool): 是否只获取响应头而不获取响应体。如果只需要获取响应头,设置为true
;否则为false
。
注意事项
- 此函数用于执行 HTTP 请求并获取响应。
- 函数执行过程中会禁用 SSL 证书验证,如果用于生产环境,请谨慎使用。
- 默认使用了一组固定的 HTTP 请求头信息,如果需要自定义请求头,请在函数内部修改。
- 默认使用了一个固定的 User-Agent,如果需要自定义 User-Agent,请通过
$ua
参数传递自定义的 User-Agent 字符串。
使用示例
<?php
// 发送 GET 请求并获取响应体
$response = get_curl('https://example.com');
// 发送 POST 请求并获取响应体
$postData = array('key' => 'value');
$response = get_curl('https://example.com', $postData);
// 发送 GET 请求并获取响应头
$responseHeader = get_curl('https://example.com', false, 0, 0, true);
// 发送 GET 请求并获取响应头和响应体
$responseWithHeader = get_curl('https://example.com', false, 0, 0, true);
// 发送 GET 请求并设置自定义 Referer 和 User-Agent
$responseCustom = get_curl('https://example.com', false, 'https://example.com', 0, 0, 'Custom User-Agent');
// 发送 GET 请求并只获取响应头
$responseHeaderOnly = get_curl('https://example.com', false, 0, 0, false, 0, true);
?>
2.input()
函数使用说明
功能
input()
函数用于获取用户输入数据,并进行过滤处理,以防止 XSS 攻击和 SQL 注入。
参数说明
$method
(string|null): 可选参数,指定获取用户输入数据的方式。可选取值为'post'
、'get'
、'cookie'
、'input'
或null
。默认为null
,表示合并$_POST
和$_GET
数据。
返回值
- 返回一个经过过滤处理后的关联数组,包含用户输入的数据。
注意事项
- 此函数用于获取用户输入数据,并对数据进行过滤处理,以防止 XSS 攻击和 SQL 注入。
- 默认情况下,函数会合并
$_POST
和$_GET
数据,并进行过滤处理。 - 如果指定了
$method
参数,则根据指定的方式获取数据。 - 如果选择获取
'input'
数据,则函数会尝试从 PHP 输入流中获取 JSON 格式的数据,并解码为数组。 - 函数会使用
strip_tags()
函数过滤 HTML 标签,并使用daddslashes()
函数对数据进行转义处理。
使用示例
<?php
// 获取 POST 数据并过滤处理
$postData = input('post');
// 获取 GET 数据并过滤处理
$getData = input('get');
// 获取 Cookie 数据并过滤处理
$cookieData = input('cookie');
// 获取 JSON 输入数据并过滤处理
$inputData = input('input');
// 获取合并的 POST 和 GET 数据并过滤处理
$mergedData = input();
?>
3.authcode()
函数使用说明
功能
authcode()
函数用于对字符串进行加密和解密操作。
参数说明
$string
(string): 需要加密或解密的字符串。$operation
(string): 操作类型,可选值为'DECODE'
(解密)或'ENCODE'
(加密)。默认为'DECODE'
。$key
(string): 密钥,用于加密和解密。如果不指定密钥,则使用默认密钥。$expiry
(int): 过期时间,仅在加密操作时有效。默认为0
,表示永不过期。
返回值
- 如果操作为
'DECODE'
,则返回解密后的字符串。 - 如果操作为
'ENCODE'
,则返回加密后的字符串。
注意事项
- 此函数用于加密和解密字符串,通常用于用户身份验证等场景。
- 函数内部使用了一系列加密算法和随机数生成器。
- 如果操作为
'DECODE'
,函数会验证解密后的字符串是否过期,如果过期或解密失败,则返回空字符串。
使用示例
<?php
// 加密字符串
$originalString = 'hello world';
$encryptedString = authcode($originalString, 'ENCODE', 'your_key', 3600); // 使用指定密钥,并设置过期时间为 1 小时
// 解密字符串
$decryptedString = authcode($encryptedString, 'DECODE', 'your_key');
?>
4.exitjson()
函数使用说明
功能
exitjson()
函数用于返回 JSON 格式的响应数据并终止脚本执行。
参数说明
$code
(int): 响应代码,表示请求的处理状态。例如,0
表示成功,-1
表示失败等。$msg
(string): 响应消息,用于描述响应状态或结果。$data
(mixed|null): 可选参数,响应数据。如果提供了数据,则会包含在响应中。
注意事项
- 此函数用于返回 JSON 格式的响应数据,通常用于 API 接口的响应。
- 如果提供了
$data
参数,则会将$code
、$msg
和$data
打包成 JSON 格式返回。 - 如果未提供
$data
参数,则只返回$code
和$msg
。 - 函数执行后会立即终止脚本执行。
使用示例
<?php
// 示例1:返回带数据的 JSON 响应
$code = 0;
$msg = 'Success';
$data = array('name' => 'John', 'age' => 30);
exitjson($code, $msg, $data);
// 示例2:返回不带数据的 JSON 响应
$code = -1;
$msg = 'Failed';
exitjson($code, $msg);
?>
5.executeSQLQuery()
函数使用说明
功能
executeSQLQuery()
函数用于执行 SQL 查询并返回结果或受影响的行数。
参数说明
$sql
(string): 要执行的 SQL 查询语句。$operation
(string): 操作类型,可选值为'select'
、'delete'
、'update'
或'insert'
。默认为'select'
。
返回值
- 如果操作为
'select'
,则返回查询结果的关联数组。 - 如果操作为
'delete'
、'update'
或'insert'
,则返回受影响的行数。 - 如果操作类型不合法或执行过程中出现异常,则返回
false
。
注意事项
- 此函数用于执行 SQL 查询,并根据操作类型返回结果或受影响的行数。
- 函数内部使用 PDO 对象执行查询,可以有效防止 SQL 注入攻击。
- 如果执行过程中出现异常,则会捕获异常并返回
false
。
使用示例
<?php
// 示例1:执行 SELECT 查询并返回结果
$sqlSelect = "SELECT * FROM users WHERE id = :id";
$resultSelect = executeSQLQuery($sqlSelect, 'select');
// 示例2:执行 DELETE、UPDATE 或 INSERT 查询并返回受影响的行数
$sqlDelete = "DELETE FROM users WHERE id = :id";
$affectedRows = executeSQLQuery($sqlDelete, 'delete');
// 示例3:未指定操作类型,默认为 SELECT 查询
$sqlDefaultSelect = "SELECT * FROM products";
$resultDefaultSelect = executeSQLQuery($sqlDefaultSelect);
// 示例4:执行异常查询,返回 false
$sqlInvalid = "INVALID SQL QUERY";
$resultInvalid = executeSQLQuery($sqlInvalid);
?>
6.safeSqlQuery()
函数使用说明
功能
safeSqlQuery()
函数用于执行安全的 SQL 查询,并根据操作类型返回结果或受影响的行数。
参数说明
$sql
(string): 要执行的 SQL 查询语句,可以包含命名参数。$params
(array): 参数数组,包含命名参数和对应的值。$operation
(string): 操作类型,可选值为'select'
、'insert'
、'update'
或'delete'
。默认为'select'
。
返回值
- 如果操作为
'select'
,则返回包含查询结果和记录数量的关联数组['result' => $result, 'count' => $count]
。 - 如果操作为
'insert'
,则返回插入记录的主键 ID(如果有),否则返回受影响的行数。 - 如果操作为
'update'
或'delete'
,则返回受影响的行数。 - 如果操作类型不合法,则返回
false
。
注意事项
- 此函数使用 PDO 预处理语句执行查询,并绑定参数,可以有效防止 SQL 注入攻击。
- 函数内部根据操作类型返回不同的结果。
- 如果操作为
'insert'
,且成功插入记录,则返回插入的记录的主键 ID;如果未插入记录,则返回受影响的行数。 - 如果提供的操作不在支持范围内,则返回
false
。
使用示例
<?php
// 示例1:执行 SELECT 查询并返回结果和记录数量
$sqlSelect = "SELECT * FROM users WHERE id = :id";
$paramsSelect = array('id' => 1);
$resultSelect = safeSqlQuery($sqlSelect, $paramsSelect, 'select');
// 示例2:执行 INSERT 查询并返回插入记录的主键 ID 或受影响的行数
$sqlInsert = "INSERT INTO users (username, email) VALUES (:username, :email)";
$paramsInsert = array('username' => 'john_doe', 'email' => 'john@example.com');
$primaryKeyOrRowCount = safeSqlQuery($sqlInsert, $paramsInsert, 'insert');
// 示例3:执行 DELETE 或 UPDATE 查询并返回受影响的行数
$sqlUpdate = "UPDATE users SET email = :email WHERE id = :id";
$paramsUpdate = array('email' => 'new_email@example.com', 'id' => 1);
$affectedRows = safeSqlQuery($sqlUpdate, $paramsUpdate, 'update');
// 示例4:未指定操作类型,默认为 SELECT 查询
$sqlDefaultSelect = "SELECT * FROM products";
$paramsDefaultSelect = array();
$resultDefaultSelect = safeSqlQuery($sqlDefaultSelect, $paramsDefaultSelect);
?>
7.createLog()
函数使用说明
功能
createLog()
函数用于创建日志记录,并将其插入到数据库中。
参数说明
$uid
(string|int): 用户ID或标识符。默认为'0'
。如果传入'admin'
,则将其替换为0
。$type
(string): 日志类型,用于描述日志的内容或操作。$ip
(string): IP地址,表示发起日志记录的客户端IP地址。
返回值
- 如果日志记录成功插入数据库,则返回
true
。 - 如果插入过程中出现异常或失败,则返回
false
。
注意事项
- 此函数用于创建日志记录,并将其插入到数据库中。
- 函数内部使用 PDO 预处理语句执行 SQL 查询,可以有效防止 SQL 注入攻击。
- 如果传入的
$uid
参数为'admin'
,则会将其替换为0
。 - 如果插入过程中出现异常,则会捕获异常并返回
false
。 - 需传入pid 做为$uid 参数 其 传入 admin 默认为 0
使用示例
<?php
// 示例1:创建日志记录
$uid = '123';
$type = 'login';
$ip = '192.168.1.100';
$success = createLog($uid, $type, $ip);
if ($success) {
echo '日志记录创建成功!';
} else {
echo '日志记录创建失败!';
}
?>
8.http_ip()
函数使用说明
功能
http_ip()
函数用于获取客户端的IP地址。
返回值
- 返回客户端的IP地址。
注意事项
- 此函数用于获取客户端的IP地址,以便在服务器端进行处理。
- 函数会优先从
HTTP_CLIENT_IP
、HTTP_X_FORWARDED_FOR
、REMOTE_ADDR
变量中获取IP地址。 - 如果无法从上述变量中获取IP地址,则会尝试从
$HTTP_SERVER_VARS['REMOTE_ADDR']
变量中获取。 - 如果仍然无法获取IP地址,则返回空字符串。
使用示例
<?php
// 获取客户端IP地址
$clientIP = http_ip();
echo '客户端IP地址是:' . $clientIP;
?>
9.insertIntoInsideOrder()
函数使用说明
功能
insertIntoInsideOrder()
函数用于向内部订单表中插入订单信息。
参数说明
$order
(string): 订单号。$pid
(int): 用户ID或标识符。$money
(float): 订单金额。$beizhu
(string): 备注信息,可选参数。默认为空字符串。
返回值
- 如果插入成功,则返回插入记录的主键 ID(如果有);否则返回受影响的行数。
注意事项
- 此函数用于将订单信息插入到内部订单表中。
- 内部订单表结构包含订单号、用户ID、金额和备注信息。
- 如果插入过程中出现异常,则返回
false
。 - 函数内部调用了
safeSqlQuery()
函数来执行 SQL 插入操作,确保了插入过程的安全性。
使用示例
// 示例:向内部订单表插入订单信息
$order = '20240422-001';
$pid = 12345;
$money = 100.00;
$beizhu = 'VIP会员充值';
$result = insertIntoInsideOrder($order, $pid, $money, $beizhu);
if ($result !== false) {
echo '订单插入成功!插入记录的主键 ID 为:' . $result;
} else {
echo '订单插入失败!';
}
六、常用常量和变量解析
1. 常量
DEC
: 系统分隔符SYSTEM_ROOT
: 引入目录ROOT
: 根目录admintem
: 后台模板文件adminassets
: 后台样式文件usertem
: 用户模板文件
2. 变量
$islogin_user
: 用于判断用户是否登录,值为 1 表示已登录$islogin_admin
: 用于判断管理员是否登录,值为 1 表示已登录$userrow
: 用户中心表,在登录后有效$user_pid
: 用户的 PID,在登录后有效$date
: 当前时间$conf
: 全局 config 表内容$httphost
: 当前站点链接,包含协议头和 host
以上是常量和变量的基本解析,你可以根据需要在代码中使用它们
就这些了 有需要什么补充 可以在 底下留言 感谢观看
请登录后查看回复内容