前言
由于这一段儿较为动荡,所以积累的许多东西并没有进行复盘整理,这次进行统一的整理覆盘一下。
正文
后台
1、php如何实现进程一直运行并后台挂起
额,小脚本,正式生产环境不能这样做。
为避免网页关闭,即用户关闭连接之后,php-fpm进程下的该文件的子进程关闭,一方面需要在该函数,或者文件中引入
set_time_limit(0)
避免php运行时间长主动报错
ini_set("memory_limit", "128M");
避免内存泄漏报错,也防止内存过大。。128M不小了哈(对于用途而言)
ignore_user_abort(1)
这个就是忽略用户中断。
大致上就是这样子来实现一个脚本的挂起。。。基于php-fpm的运行模式下,如果是cli模式,查了下 ,你可能需要使用
fastcgi_finish_request
2、senLinux
当时以为是权限问题,查看了下用户以及用户组,还有权限并没有出错,但还是死活无法创建,后来经翻查了好多网页,偶然看到是不是因为linux的seLinux的原因,于是用
sestatus
获取seLinux的状态 ,发现目前的seLinux的状态是enforcing。。
所以
vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
######修改此处########
SELINUX=disabled
#####################
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
然后重启一下linux系统就可以了。
reboot 或者shutdown -r now 都可以的
3、统计连接ip
这个是当时系统感觉像是遭遇了cc攻击。。所以登陆上服务器进行日志筛选,用的是centOS7
命令如下:
netstat -ntp|awk '{print $5}' | cut -d: -f1 | uniq -c | sort -r | head -5
搜查出前五个连接最为多的tcp连接,哦,为防止有其他无关项干扰,建议再加上grep tcp
前台
前台方面记一些技巧
1、使用css隐藏元素打印
简单讲就是使用
<style>
@media.print{
要隐藏的元素{
display:none;
}
]
</style>
2、打印自动分页
这个倒是有点挺不错的
<div style='page-break-after: always;'></div>
即可
3、css跳转锚点
这个锚点跳转原生的,感觉要比其他跳转方案要好很多
document.getElementById(id).scrollIntoView({behavior: 'smooth', block:'center', inline: 'nearest'});
具体其他参数,可以查看MDN:
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView
正则
这一次因为要对接的平台上没有api,所以在征求对方公司的同意后,进行相关信息的爬取,老老实实地写了个爬虫。。。正则使用倒是熟练了很多。。。嗯。。。这一部分就有点杂乱,,就说一点吧,算是踩过地坑,如非必要的话,空格还是以/s为主筛选,不然,对方代码不规范,你在网页上也看不清楚。。。。。
其他
额,还有一些是关于设计模式的一些总结和写的demo,但是一下子都写出来显得没有条理性,所以下一篇在进行总结,就这样了(笑)