首页 > php教程 > php手册 > 正文

php中html字符串过滤函数详解

php中文网
发布: 2016-05-25 16:49:31
原创
1380人浏览过

在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("&gt", "", $str);
    $str = str_replace("&lt", "", $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
10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

10分钟内自己学会PHP 524
查看详情 10分钟内自己学会PHP

或者

$xxx = htmlspecialchars($_GET['xxx']);


文章地址:

转载随意^^请带上本文地址!

php中html字符串过滤函数详解 php中html字符串过滤函数详解 php中html字符串过滤函数详解 php中html字符串过滤函数详解
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号