收藏一些规范化输入输出的PHP函数
来源:互联网 发布:windows凭据 普通凭据 编辑:程序博客网 时间:2024/05/22 00:17
在PHP网站开发过程中会遇到很多需要转义的地方,下面推荐几个很好的函数,可以很好地增强网站的输入输出规范化问题。
1. 纯文本输出,适合input
function t($text){$text = h($text);$text = strip_tags($text);return $text;}
2. 多行纯文本 适合textarea
function br2nl($text){ return trim(preg_replace('/<br\\s*\/?'.'>/i', '', $text));}
3. 将html换行变成回车
function br2nl($text){ return trim(preg_replace('/<br\\s*\/?'.'>/i', '', $text));}
4. 输出安全的html
function h($text){$text = trim($text);$text = stripslashes($text);//完全过滤注释$text = preg_replace('/<!--?.*-->/','',$text);//完全过滤动态代码$text = preg_replace('/<\?|\?'.'>/','',$text);//完全过滤js$text = preg_replace('/<script?.*\/script>/','',$text);$text = str_replace('[','[',$text);$text = str_replace(']',']',$text);$text = str_replace('|','|',$text);//过滤换行符$text = preg_replace('/\r?\n/','',$text);//br$text = preg_replace('/<br(\s\/)?'.'>/i','[br]',$text);$text = preg_replace('/(\[br\]\s*){10,}/i','[br]',$text);//hr img area input$text = preg_replace('/<(hr|img|input|area|isindex)( [^><\[\]]*)>/i','[\1\2]',$text);//过滤多余html$text = preg_replace('/<\/?(html|head|meta|link|base|body|title|style|script|form|iframe|frame|frameset)[^><]*>/i','',$text);//过滤on事件lang jswhile(preg_match('/(<[^><]+)( lang|onfinish|onmouse|onexit|onerror|onclick|onkey|onload|onchange|onfocus|onblur)[^><]+/i',$text,$mat)){$text=str_replace($mat[0],$mat[1],$text);}while(preg_match('/(<[^><]+)(window\.|javascript:|js:|about:|file:|document\.|vbs:|cookie)([^><]*)/i',$text,$mat)){$text=str_replace($mat[0],$mat[1].$mat[3],$text);}//过滤合法的html标签while(preg_match('/<([a-z]+)[^><\[\]]*>[^><]*<\/\1>/i',$text,$mat)){$text=str_replace($mat[0],str_replace('>',']',str_replace('<','[',$mat[0])),$text);}//转换引号while(preg_match('/(\[[^\[\]]*=\s*)(\"|\')([^\2=\[\]]+)\2([^\[\]]*\])/i',$text,$mat)){$text=str_replace($mat[0],$mat[1].'|'.$mat[3].'|'.$mat[4],$text);}//过滤错误的单个引号while(preg_match('/\[[^\[\]]*(\"|\')[^\[\]]*\]/i',$text,$mat)){$text=str_replace($mat[0],str_replace($mat[1],'',$mat[0]),$text);}//转换其它所有不合法的 < >$text = str_replace('<','<',$text);$text = str_replace('>','>',$text);$text = str_replace('"','"',$text);//反转换$text = str_replace('[','<',$text);$text = str_replace(']','>',$text);$text = str_replace('|','"',$text);//过滤多余空格$text = str_replace(' ',' ',$text);return $text;}
- 收藏一些规范化输入输出的PHP函数
- 收藏一些规范化输入输出的PHP函数
- C语言中的输入输出的一些函数
- PHP--规范化的文件上传
- PHP--规范化的文件上传
- 一些输入输出函数
- php的一些函数
- 输入输出外一些常用函数
- 收藏PHP常用函数
- 收藏PHP常用函数
- 收藏PHP常用函数
- 收藏PHP常用函数
- 收藏PHP常用函数
- PHP常用函数收藏
- 8086汇编:输入输出和数组操作的一些函数
- 一些输入输出的问题
- 数据库设计规范化的五个要求 推荐收藏
- PHP编程时的规范化命名
- hibernate两表查询
- Linux下向oracle数据库倒入dmp包的方式
- phpcms v9 附件无法上传解决办法
- Android使用OrmLite数据库框架 之 使用表配置文件
- 3.1 CMMI3级——11个PA简述
- 收藏一些规范化输入输出的PHP函数
- 写自己的ANDROIDSDK 参考资料1
- mysql触发器的实战经验
- oracle 11g rac undo表空间切换
- python doc 简要介绍
- 使用严苛模式打破Android4.0以上平台应用中UI主线程的“独断专行”
- 分布式数据库组件——Database Link
- ETL
- sql server 压缩日志或者数据文件