正则批量替换函数preg_replace_callback 在php5.2 php5.3中的类中使用问题相关说明
[ 2020-06-09 21:54:10 | 作者: admin ]
p.s. 真的挺奇怪,这么常用的函数,关于类中使用网上居然很难找到有用相关资料,难道大伙都避免使用preg_replace_callback吗。有用的说明请看参考1.
下面举例说明,其中 next_year 为回调函数
php5.2和php5.3的类中都可以使用的标准方法:
阅读全文…
下面举例说明,其中 next_year 为回调函数
function next_year($matches) {
// 通常:$matches[0] 是完整的匹配项,$matches[1] 是第一个括号中的子模式的匹配项, 以此类推
return $matches[1].($matches[2]+1);
}
// 通常:$matches[0] 是完整的匹配项,$matches[1] 是第一个括号中的子模式的匹配项, 以此类推
return $matches[1].($matches[2]+1);
}
php5.2和php5.3的类中都可以使用的标准方法:
preg_replace_callback(”|(d{2}/d{2}/)(d{4})|”,array( &$this, ‘next_year’), $str);
...阅读全文…
Apache服务器.htAccess rewrite伪静态时匹配url里的中文或http网址
[ 2020-06-09 13:44:04 | 作者: admin ]
p.s. 涉及伪静态参数中有网址或者中文的,需要进行2次urlencode,因为apache伪静态前会自动urldecode一次
配置Apache的伪静态,涉及到中文正则不能匹配,
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
也试了,也不能匹配。
尝试匹配所有字母数字加上% ([a-zA-Z0-9_%]+)
也没有成功,查到Apache执行url会自动进行一次urldecode,传的值会还原成中文的,也不能匹配。
后来想到,把值进行两次 urlencode ,取的时候再进行两次 urldecode 用([a-zA-Z0-9_%]+)
就可以匹配了。
配置Apache的伪静态,涉及到中文正则不能匹配,
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
也试了,也不能匹配。
尝试匹配所有字母数字加上% ([a-zA-Z0-9_%]+)
也没有成功,查到Apache执行url会自动进行一次urldecode,传的值会还原成中文的,也不能匹配。
后来想到,把值进行两次 urlencode ,取的时候再进行两次 urldecode 用([a-zA-Z0-9_%]+)
就可以匹配了。
win2003下apache2.2 close_wait 过多导致无法响应的问题
[ 2020-06-04 13:08:06 | 作者: admin ]
p.s. win2003下fastcgi方式安装apache后也遇到些问题,做个记录。一般情况下可以依据apache和php的错误日志来做一些调整,看看修改的结果。
1、连接状态中 close_wait 太多的问题,apache服务器无响应
解决办法:
a、windows网卡防火墙的设置
windows防火墙中把80,443,apache放入例外,另外防火墙高级中选中http和https。
b、修改apache配置文件httpd.conf,加入下面语句
2、并发连接数太多,导致服务器无响应
...
阅读全文…
1、连接状态中 close_wait 太多的问题,apache服务器无响应
解决办法:
a、windows网卡防火墙的设置
windows防火墙中把80,443,apache放入例外,另外防火墙高级中选中http和https。
b、修改apache配置文件httpd.conf,加入下面语句
EnableMMAP off
EnableSendfile off
AcceptFilter http none
AcceptFilter https none
Win32DisableAcceptEx
EnableSendfile off
AcceptFilter http none
AcceptFilter https none
Win32DisableAcceptEx
2、并发连接数太多,导致服务器无响应
...
阅读全文…
PHP中Header使用的HTTP协议及常用方法小结
[ 2020-06-04 09:42:29 | 作者: admin ]
本文实例总结了PHP中Header使用的HTTP协议及常用方法。分享给大家供大家参考。具体方法如下:
阅读全文…
<?PHP
function https($num) {
$http = array (
100 => "HTTP/1.1 100 Continue",
101 => "HTTP/1.1 101 Switching Protocols",
200 => "HTTP/1.1 200 OK",
201 => "HTTP/1.1 201 Created",
202 => "HTTP/1.1 202 Accepted",
203 => "HTTP/1.1 203 Non-Authoritative Information",
204 => "HTTP/1.1 204 No Content",
205 => "HTTP/1.1 205 Reset Content",
...function https($num) {
$http = array (
100 => "HTTP/1.1 100 Continue",
101 => "HTTP/1.1 101 Switching Protocols",
200 => "HTTP/1.1 200 OK",
201 => "HTTP/1.1 201 Created",
202 => "HTTP/1.1 202 Accepted",
203 => "HTTP/1.1 203 Non-Authoritative Information",
204 => "HTTP/1.1 204 No Content",
205 => "HTTP/1.1 205 Reset Content",
阅读全文…
tcp链接的几种状态&tcpdump抓包
[ 2020-06-03 16:53:23 | 作者: admin ]
转自:https://www.iteye.com/blog/agapple-806518
说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手
里面的几个概念:
SYN: (同步序列编号,Synchronize Sequence Numbers)
ACK: (确认编号,Acknowledgement Number)
FIN: (结束标志,FINish)
TCP三次握手(创建 OPEN)
客户端发起一个和服务创建TCP链接的请求,这里是SYN(J)
服务端接受到客户端的创建请求后,返回两个信息: SYN(K) + ACK(J+1)
客户端在接受到服务端的ACK信息校验成功后(J与J+1),返回一个信息:ACK(K+1)
服务端这时接受到客户端的ACK信息校验成功后(K与K+1),不再返回信息,后面进入数据通讯阶段
数据通讯
...
阅读全文…
说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手
里面的几个概念:
SYN: (同步序列编号,Synchronize Sequence Numbers)
ACK: (确认编号,Acknowledgement Number)
FIN: (结束标志,FINish)
TCP三次握手(创建 OPEN)
客户端发起一个和服务创建TCP链接的请求,这里是SYN(J)
服务端接受到客户端的创建请求后,返回两个信息: SYN(K) + ACK(J+1)
客户端在接受到服务端的ACK信息校验成功后(J与J+1),返回一个信息:ACK(K+1)
服务端这时接受到客户端的ACK信息校验成功后(K与K+1),不再返回信息,后面进入数据通讯阶段
数据通讯
...
阅读全文…
apache Alias使用问题
[ 2020-06-03 13:11:26 | 作者: admin ]
今天在配置apache的过程中,使用了Alias,但是由于配置错误导致403 forbidden错误,不能正常访问。
首先理解一下Alias,Alias就是别名的意思,假如我的项目目录在/home/web/test 下,可以通过配置的域名http://blog.xg98.com/xxx 可以正常访问test目录下的所有内容,但是在项目开发过程中,由于一些原因导致一些文件想存放于/home/web/statics下,但是也想通过
http://blog.xg98.com/statics/xxx ,访问位于/home/web/statics 下的文件,就可以使用apache提供的Alias了。
其次,使用Alias非常方便的就可以实现上面的需求了,通过在刚在配置的test.com域名的vhosts中进行添加
apache2.2[code][/code]...
阅读全文…
首先理解一下Alias,Alias就是别名的意思,假如我的项目目录在/home/web/test 下,可以通过配置的域名http://blog.xg98.com/xxx 可以正常访问test目录下的所有内容,但是在项目开发过程中,由于一些原因导致一些文件想存放于/home/web/statics下,但是也想通过
http://blog.xg98.com/statics/xxx ,访问位于/home/web/statics 下的文件,就可以使用apache提供的Alias了。
其次,使用Alias非常方便的就可以实现上面的需求了,通过在刚在配置的test.com域名的vhosts中进行添加
apache2.2[code][/code]...
阅读全文…
apache配置上传目录禁止运行php的方法
[ 2020-06-03 13:05:48 | 作者: admin ]
p.s. 这个是apache2.2的语法,apache2.4
安全防护网站上传功能里引发安全问题很多很多,你做好安全防护了吗?
导读: 禁止上传目录运行php等可执行文件可以从一定程度上增加网站的安全性, 禁止上传目录运行php的方法可以用.htaccess文件, 也可以直接在apache服务器上修改配置文件.
第一种禁止上传目录运行php的方法
如果你用的虚拟空间可以用.htaccess文件来限制上传目录运行php。
.htaccess方法A
新建一个.htaccess文件,拷贝下面的内容, 上传到要禁止运行php的文件夹内
<Files ~ ".php">
Order allow,deny...
阅读全文…
AllowOverride None
Options None
Require all granted
Options None
Require all granted
安全防护网站上传功能里引发安全问题很多很多,你做好安全防护了吗?
导读: 禁止上传目录运行php等可执行文件可以从一定程度上增加网站的安全性, 禁止上传目录运行php的方法可以用.htaccess文件, 也可以直接在apache服务器上修改配置文件.
第一种禁止上传目录运行php的方法
如果你用的虚拟空间可以用.htaccess文件来限制上传目录运行php。
.htaccess方法A
新建一个.htaccess文件,拷贝下面的内容, 上传到要禁止运行php的文件夹内
<Files ~ ".php">
Order allow,deny
阅读全文…
win2003下apache运行php的方式 fastcgi方式mod_fcgid 和 isapi方式php5apache2_4.dll
[ 2020-06-03 10:45:18 | 作者: admin ]
p.s. 虽然win2003非常非常悠久,不过资源消耗低,系统稳定,运行小项目绝对没问题,特别是企业站。这里选择apache的原因是可以作为服务运行,比较方便,也支持虚拟目录Alias。并发过高还是老实点转到 centos+nginx。
首先是版本选择,根据https://www.apachelounge.com/download/win32/ 的说法,最后一个支持win2003的是vc10编译版本,可选apache2.2和apache2.4,下方有下载链接。
阅读全文…
首先是版本选择,根据https://www.apachelounge.com/download/win32/ 的说法,最后一个支持win2003的是vc10编译版本,可选apache2.2和apache2.4,下方有下载链接。
Build with Windows® Platform SDK 7.1 and Visual Studio C++ 2010 SP1 aka VC10. VC10 has improvements, fixes and optimizations over VC9 in areas like Performance,
...阅读全文…