可能是因为slim框架大家使用少,加上官方文档也非常的简单,这里整理一下slim4所有所有路由的方式;问:为什么要获取所有的路由? 答:肯定是用来做权限控制啦~~~
路由设置
本文的方式在通过中间件的方式去获取所有路由,在用户登录的时候会触发中间件去整理所有的路由
1 |
|
可能是因为slim框架大家使用少,加上官方文档也非常的简单,这里整理一下slim4所有所有路由的方式;问:为什么要获取所有的路由? 答:肯定是用来做权限控制啦~~~
本文的方式在通过中间件的方式去获取所有路由,在用户登录的时候会触发中间件去整理所有的路由
1 |
|
当登录失效时,如果使用header(“location:/admin/login”);的方式跳转,就会在内层页面跳转到登录页面,体验非常不好,正确应该使用下面的跳转能跳转到外层页面的登录
1 | exit('<script>top.location.href= "/admin/login"</script>'); |
1 | // 获得frame索引 |
1 | //监听提交 |
在用x-admin前端模板的时候,发现了一个问题,对于左侧的菜单栏,如果点击之后(即菜单页为展开)再退出了系统,重新登录后,发现菜单栏和退出时是一样的
而我们的要求是在刷新或者重新登录后,需要清除左侧菜单的选中效果
我们只需要在页面加载的地方加如下js代码:
1 | //清除缓存 |
但是现在又有问题了,清除完缓存之后,就发现任何的标签页都没有被选中,真的好丑,解决这个问题很简单,只要在x-admin模板中找到相应的菜单栏,找到初始管理相对应的a标签
1 | <li> |
x-admin的原生是没有页面刷新(外层)清除tab的,而且是刷新后会停留在最后一个tab上,体验不是很好,这里做下更改
因为tab部分的代码全部是由js生成的,需要在body上添加一个事件(onbeforeunload)去触发
在即将离开当前页面(刷新或关闭)时执行 JavaScript :
1 | <body onbeforeunload="return myFunction()"> |
将
放在外层iframe里面1 | <body class="index" onbeforeunload="close_tabs()"> <!--在即将离开当前页面(刷新或关闭)时执行 JavaScript :--> |
1 | function close_tabs(){ |
搞定!也可以在退出、切换账号的时候触发这个关闭所有tab
本文通过php代码通过抖音链接去获取抖音无水印视频,也可以批量获取下载抖音视频,禁止转载
我们还是先获取一个抖音链接
1 | https://v.douyin.com/S2pF3G8/ |
通过访问重定向
1 | https://www.douyin.com/video/7190042191169883427 |
然后提取到其中的视频ID
1 | 7190042191169883427 |
X-Bogus你可以理解为是一个根据视频ID及user-agent通过JS生成的用户信息参数,它可以用于校验,详细的一篇分析可以参考Freebuf上的《【JS 逆向百例】某音 X-Bogus 逆向分析,JSVMP 纯算法还原》
X-Bogus简单的理解就是通过js算法生成的一个秘钥,抖音通过这个秘钥能得到身份验证
文章后面会详细介绍X-Bogus的获取
本文只针对于centos7以上系统
supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。
运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启
可以理解成supervisor的客户端,upervisorctl是命令行管理工具,可以用如下命令来进行子进程的管理
用来生成默认的配置文件,一般生成默认文件为 supervisor.conf
supervisor是用python写的运行在linux下的进程管理工具,安装supervisor的时候依赖 python的一些包,它依赖:python、setuptools、meld3
PHP实现的敏感词过滤方法,以下是一份过滤敏感词的编码。有需要可以参考参考。
1 | /** |