$str=preg_replace("/s+/", " ", $str); //过滤多余回车
$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)
$str=preg_replace("/<!–.*?–>/si","",$str); //注释
$str=preg_replace("/<(!.*?)>/si","",$str); //过滤DOCTYPE
$str=preg_replace("/<(/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
$str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(/?applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(/?style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(/?title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(/?objec.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(/?noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(/?i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)s*=/si","On1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签
Tag: PHP
PHP 删除文本文件的任意一行或添加一行
<?php
$filename="aaa.txt";//定义操作文件
$delline=3; //要删除的行数
$farray=file($filename);//读取文件数据到数组中
for($i=0;$i<count($farray);$i++)
{
if(strcmp($i+1,$delline)==0) //判断删除的行,strcmp是比较两个数大小的函数
{
continue;
}
if(trim($farray[$i])<>"") //删除文件中的所有空行
{
$newfp.=$farray[$i]; //重新整理后的数据
}
}
$fp=@fopen($filename,"w");//以写的方式打开文件
@fputs($fp,$newfp);
@fclose($fp);
?>
添加一行数据到最后一行
<?php
$filename="aaa.txt";//定义操作文件
$fcontent = file($filename); //file()把整个文件读入一个数组中
$fp = fopen("$filename","a");
$str = "10.8.0.9:255.255.255.0n";
fwrite($fp, $str);
?>
PHP读取文件的第1行后删除此行数据
<?php
header(‘Content-Type: text/html; charset=utf-8’);$fn = "1.txt";
$f= fopen($fn, "r");
$line = fgets($f);
ob_start();
fpassthru($f);
fclose($f);
file_put_contents($fn, ob_get_clean() );echo $line;
?>
使用Apache作为Nginx的PHP处理后台
Nginx本身不自带PHP处理模块,因此需要配置反向代理,将php请求交给其他的PHP解析器执行,然后返回结果给Nginx。
目前流行的方式是使用fast-cgi的方式配置PHP处理服务。其优点是比较简洁,服务器负载轻。但是缺点也是很明显的:无法查看php处理状态。
比如有时候网站因为负荷过高,php处理线程已经全部阻塞,就会造成网站无法再响应php服务。使用fastcgi方式,无法查看是哪些脚本处理时间过长,阻塞了php处理线程。
而Apache的有点就在于,可以很好的查看哪些php脚本处理时间过长,阻塞了有效进程数。
下面的方式是使用Apache最为Nginx的php处理后台:
1,先安装apache
apt-get install apache
并配置好apache正确运行在8001端口。
2,修改nginx的虚拟主机配置,其他php脚本交由apache解析
location ~ .php$ { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 30; proxy_send_timeout 30; proxy_read_timeout 30; client_max_body_size 10m; client_body_buffer_size 128k; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }
重启nginx和apache就好了。
注意,如果要查看php的处理状态,安装使用apache的监控模块就可以了。
LNMP相关目录和命令
安装:
wget -c http://soft.vpser.net/lnmp/lnmp0.9-full.tar.gz tar zxvf lnmp0.9-full.tar.gz cd lnmp0.9-full/
确认Linux发行版:
cat /etc/issue
CentOS系统下的安装
./centos.sh 2>&1 | tee lnmp.log
Debian系统下的安装
./debian.sh 2>&1 | tee lnmp.log
Ubuntu系统下的安装
./ubuntu.sh 2>&1 | tee lnmp.log
添加虚拟主机
/root/vhost.sh
删除虚拟主机
rm /usr/local/nginx/conf/vhost/xiaokyun.com.conf
安装组件
安装PureFTPd和FTP管理面板:
./pureftpd.sh
安装eAccelerator:
./eaccelerator.sh
安装ionCube:
./ionCube.sh
安装imageMagick:
./imageMagick.sh
安装memcached:
./memcached.sh
升级
升级Nginx:
./upgrade_nginx.sh
升级PHP版本:
./upgrade_php.sh
状态管理
LNMP状态管理:
/root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:
/etc/init.d/nginx {start|stop|reload|restart}
PHP-FPM状态管理:
/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理:
/etc/init.d/pureftpd {start|stop|restart|kill|status}
MySQL状态管理:
/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:
/etc/init.d/memcached {start|stop|restart}
相关图形界面程序
phpinfo : http://www.xiaokyun.com/phpinfo.php
phpMyAdmin : http://www.xiaokyun.com/phpmyadmin/
探针 : http://www.xiaokyun.com/p.php
PureFTP管理界面:http://www.xiaokyun.com/ftp/
Memcached测试页面:http://www.xiaokyun.com/memcached.php
LNMP相关目录
nginx : /usr/local/nginx
mysql : /usr/local/mysql
php : /usr/local/php
网站目录: /home/wwwroot/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
LNMP相关配置文件
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf