0%

2024年,你好!
新的一年到来,抽点时间回顾下昨天也展望下未来;随着年龄的增长越来越不想跨年,而且你会发觉一年的时间特别短,时间过得飞快,有的人还没好好陪伴、有的事还没做完、有的愿望还没实现、有的地方还没远去;时间只是一味的改变你的容颜、抹去你的黑发、退化你的身体、磨灭你的记忆,却从不提醒你落下了好多东西。趁着快放假前夕,写些无头绪的杂感。

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@proxy ~]# vi /etc/nginx/conf.d/forward.conf
server {
listen 80;
server_name forward.linuxds.com;
access_log /var/log/nginx/forward.access.log main;
error_log /var/log/nginx/forward.error.log warn;
location / {
proxy_pass https://www.landiannews.com/; #代理地址
proxy_redirect off;
# proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
1 [root@proxy ~]# nginx -t -c /etc/nginx/nginx.conf #检查配置文件
2 [root@proxy ~]# nginx -s reload #重载配置文件

配置释义

proxy_set_header X-Real-IP $remote_addr:把源IP【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP,从而通过$X-Real-IP来获取源IP;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:在nginx作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用【,】隔开。

阅读全文 »

闲来无事,将自己原有的台式机进行了升级,很享受自己diy的这个过程,特别是装机过程;硬件迭代更新很快,本人不太喜欢追求最新硬件,比如刚出的14代cpu,喜欢淘一些二手硬件进行装机,主要是体验装机过程,将自己喜欢的配件全部组装在一起的快感。

升级后的配置信息

  • cpu:Intel I5 12400F
  • 主板:微星B660 迫击炮 wifi版
  • 内存:刚威 3600hz 16G * 2
  • 显卡:微星RTX2060 6G
  • 硬盘:铠侠 NVME m.2 pcie3.0 500G
  • 电源:酷冷至尊 G600金牌 600w
  • cpu散热: 酷冷至尊
  • 风扇:RGB 集线器控制4个
  • 机箱:乔思伯 U4 plus

效果图

装机

阅读全文 »

火山视频点播集成web上传SDK是什么呢?是通过前端对接视频点播sdk直接上传视频到视频点播中

本文介绍的是火山视频点播集成web上传SDK案例,针对于这个板块应该使用的人不是很多,但是里面会遇到不同的坑,下面借助以下代码希望能帮助到更多的人提升该板块的代码编写速度;
下面的案例是实操之后的代码结果,根据不同的需求可以稍作调整,将代码直接复用。

火山官方视频点播集成web上传SDK文档: https://www.volcengine.com/docs/4/66560#addfile-fileoption

在做这个操作之前需要注意几点:

1、是否开通了火山视频点播服务
2、不能将视频直接放在视频点播里面播放,会按照流量收费 (我的方案是转存到桶中)

阅读全文 »

很多时候我们有公历和农历之间的互转需求,农历的计算是按照中国传统中总结出来的,与公历有一定的偏差,但很多时候也有必要用到农历,所以这里推出公历与农历的互转,希望帮助到你提升代码速度。

以下代码可以直接copy使用,细节地方根据php版本不同稍作调整即可。

阅读全文 »

这里介绍layui table前端渲染、判断、css属性添加等处理方法,在遇到需要判断的某些列值的时候可以加入这种方式

在layui.js的 table 组件中,cols 属性是用于定义表格列的配置项。
每个列的配置都是一个对象,包含了一些属性,下面是一些常用的属性及其作用:

  • field:列字段名,对应数据源中的属性名。
  • title:列标题,显示在表头中。
  • width:列宽度,可以是数字或百分比。
  • sort:是否开启排序功能,可选值为 true 或者 false。
  • align:列的水平对齐方式,可选值为 left、center 或 right。
  • templet:自定义列模板,可以是一个函数或者一个 HTML 字符串。
  • toolbar:绑定工具条,可以是一个 HTML 字符串或者一个选择器。
  • edit:是否开启单元格编辑功能,可选值为 text、select 或者 checkbox。
  • fixed:列固定,可选值为 left、right 或者 true(固定在左侧)或者 true(固定在右侧)。
阅读全文 »

php实现简单的excel导出案例如下,能很方便、便捷的导出所需数据,性能比较好;如需定制化导出,比如需要设置行高宽度、颜色填充、居中等效果建议使用PHPExcel插件去做,该插件具有更强大的定制化功能,能满足你各种样式需求

以下是php导出代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public function exportcos() {
set_time_limit(0); // 设置长时执行
ini_set('memory_limit', '512M'); // 设置执行内存
$fileName = date('ymd').'_cos.csv'; // 导出的excel文件名
//设置header头
header('Content-Description: File Transfer');
header("Content-Type: application/vnd.ms-excel;charset=UTF-8");
header('Content-Disposition: attachment;filename="' . $fileName . '"');
header('Expires: 0');
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') === false) {
header('Cache-Control: no-cache');
header('Pragma: no-cache');
} else {
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}
//打开php数据输入缓冲区
$fp = fopen('php://output', 'ab');
$header = ['序号','姓名','性别','学校','班级']; // 设置excel表头
fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));
fputcsv($fp, $header);


// 数据列表处理
for ($i = 1; $i <= 50000; $i++) { // 如是真实查询数据,加入筛选条件得到过滤后需要的数据
$item['id'] = $i;
$item['name'] = "谢晨奕";
$item['sex'] = "女";
$item['school'] = "璞普幼儿园";
$item['class'] = "中二班";
fputcsv($fp, $item); // 写一行excel
}
fclose($fp); // 最后关闭缓冲区
}

可能是因为slim框架大家使用少,加上官方文档也非常的简单,这里整理一下slim4所有所有路由的方式;问:为什么要获取所有的路由? 答:肯定是用来做权限控制啦~~~

路由设置

本文的方式在通过中间件的方式去获取所有路由,在用户登录的时候会触发中间件去整理所有的路由

1
2
3
4

$app->group('/admin', function(Group $group) use ($app){
$group->post('/go_login', LoginController::class.':login')->addMiddleware(new AuthNodesMiddleware($app));
});
阅读全文 »

1、登录失效如何跳转外层页面

当登录失效时,如果使用header(“location:/admin/login”);的方式跳转,就会在内层页面跳转到登录页面,体验非常不好,正确应该使用下面的跳转能跳转到外层页面的登录

1
exit('<script>top.location.href= "/admin/login"</script>'); 

2、如何弹窗页面保存完后跳转并刷新父级页面

1
2
3
4
5
6
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
// 父页面刷新
parent.location.reload();

3、弹窗页面如何更好的提交体验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//监听提交
form.on('submit(add)', function(data){
console.log(data);
var a = true;

$.post('/admin/menu_save', data.field, function(res){
res = JSON.parse(res);
if(res.success){
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
// 父页面刷新
parent.location.reload();
return false;
} else {
layer.msg(res.msg)
return false;
}
});
return false; // 这个return false一定要加
});