在php中过滤html字符串的方法有很多,如果我们使用系统自带的可能不适合于提交表单类数据了,如果用自定的相对会好处理一些,下面我介绍了一些方法大家可参考参考。
自定义的一个函数
<?php
function StripHTML($string) {
$pattern = array(
"'<script[^>]*?>.*?</script>'si",
"'<style[^>]*?>.*?</style>'si",
"'<[/!]*?[^<>]*?>'si",
"'([rn])[s]+'",
"'&(quot|#34);'i",
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(d+);'e"
);
$replace = array(
'',
'',
"1",
'',
"&",
"<",
">",
' ',
chr(161) ,
chr(162) ,
chr(163) ,
chr(169) ,
"chr(1)"
);
return preg_replace($pattern, $replace, $str);
}
?>
除了上面自定的函数之外还有一个php自带的过滤html的函数:strip_tags(string) 这样就可以过滤掉所有的html标签了。
如果想过滤掉除了@@##@@之外的所有html标签,则可以这样写:
代码如下复制代码
strip_tags(string,"@@##@@");
过滤除了@@##@@<p>xxx</p><b></b>之外的所有html标签,则可以这样写:
代码如下复制代码
strip_tags(string,"@@##@@<p><b>");
网上找到一个防sql注入函数
<?php
//php 批量过滤post,get敏感数据
if (get_magic_quotes_gpc()) {
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
}
function stripslashes_array(&$array) {
while (list($key, $var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || '' . intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
//--------------------------
// 替换HTML尾标签,为过滤服务 http://www.phprm.com
//--------------------------
function lib_replace_end_tag($str) {
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace('/', "", $str);
$str = str_replace("", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str = str_replace("select", "select", $str);
$str = str_replace("join", "join", $str);
$str = str_replace("union", "union", $str);
$str = str_replace("where", "where", $str);
$str = str_replace("insert", "insert", $str);
$str = str_replace("delete", "delete", $str);
$str = str_replace("update", "update", $str);
$str = str_replace("like", "like", $str);
$str = str_replace("drop", "drop", $str);
$str = str_replace("create", "create", $str);
$str = str_replace("modify", "modify", $str);
$str = str_replace("rename", "rename", $str);
$str = str_replace("alter", "alter", $str);
$str = str_replace("cas", "cast", $str);
$str = str_replace("&", "&", $str);
$str = str_replace(">", ">", $str);
$str = str_replace("<", "<", $str);
$str = str_replace(" ", chr(32) , $str);
$str = str_replace(" ", chr(9) , $str);
$str = str_replace(" ", chr(9) , $str);
$str = str_replace("&", chr(34) , $str);
$str = str_replace("'", chr(39) , $str);
$str = str_replace("<br />", chr(13) , $str);
$str = str_replace("''", "'", $str);
$str = str_replace("css", "'", $str);
$str = str_replace("CSS", "'", $str);
return $str;
}
?>使用方法
引用是直接这样:
立即学习“PHP免费学习笔记(深入)”;
$xxx = htmlspecialchars($_POST['xxx']);
10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A
524
或者
$xxx = htmlspecialchars($_GET['xxx']);
文章地址:
转载随意^^请带上本文地址!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号