php ---- 过滤 html 标签

转载 2015年07月09日 10:49:16
/**
 * t函数用于过滤标签,输出没有html的干净的文本
 * @param string text 文本内容
 * @return string 处理后内容
 */
function op_t($text)
{
    $text = nl2br($text);
    $text = real_strip_tags($text);
    $text = addslashes($text);
    $text = trim($text);
    return $text;
}

/**
 * h函数用于过滤不安全的html标签,输出安全的html
 * @param string $text 待过滤的字符串
 * @param string $type 保留的标签格式
 * @return string 处理后内容
 */
function op_h($text, $type = 'html')
{
    // 无标签格式
    $text_tags = '';
    //只保留链接
    $link_tags = '<a>';
    //只保留图片
    $image_tags = '<img>';
    //只存在字体样式
    $font_tags = '<i><b><u><s><em><strong><font><big><small><sup><sub><bdo><h1><h2><h3><h4><h5><h6>';
    //标题摘要基本格式
    $base_tags = $font_tags . '<p><br><hr><a><img><map><area><pre><code><q><blockquote><acronym><cite><ins><del><center><strike>';
    //兼容Form格式
    $form_tags = $base_tags . '<form><input><textarea><button><select><optgroup><option><label><fieldset><legend>';
    //内容等允许HTML的格式
    $html_tags = $base_tags . '<ul><ol><li><dl><dd><dt><table><caption><td><th><tr><thead><tbody><tfoot><col><colgroup><div><span><object><embed><param>';
    //专题等全HTML格式
    $all_tags = $form_tags . $html_tags . '<!DOCTYPE><meta><html><head><title><body><base><basefont><script><noscript><applet><object><param><style><frame><frameset><noframes><iframe>';
    //过滤标签
    $text = real_strip_tags($text, ${$type . '_tags'});
    // 过滤攻击代码
    if ($type != 'all') {
        // 过滤危险的属性,如:过滤on事件lang js
        while (preg_match('/(<[^><]+)(ondblclick|onclick|onload|onerror|unload|onmouseover|onmouseup|onmouseout|onmousedown|onkeydown|onkeypress|onkeyup|onblur|onchange|onfocus|action|background|codebase|dynsrc|lowsrc)([^><]*)/i', $text, $mat)) {
            $text = str_ireplace($mat[0], $mat[1] . $mat[3], $text);
        }
        while (preg_match('/(<[^><]+)(window\.|javascript:|js:|about:|file:|document\.|vbs:|cookie)([^><]*)/i', $text, $mat)) {
            $text = str_ireplace($mat[0], $mat[1] . $mat[3], $text);
        }
    }
    return $text;
}

function real_strip_tags($str, $allowable_tags = "")
{
    $str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
    return strip_tags($str, $allowable_tags);
}

PHP正则过滤HTML标签、空格、换行符

PHP正则过滤HTML标签、空格、换行符

PHP过滤各种HTML标签

$str=preg_replace("/]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i", " ", $str); //过滤img标签 $str=preg_re...
  • Time888
  • Time888
  • 2017年04月18日 15:45
  • 145

PHP过滤各种HTML标签

$str=preg_replace("/]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i", " ", $str); //过滤img标签$str=preg_rep...

PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数

XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来。。。 原文如下: The goal of this function...
  • C860_zy
  • C860_zy
  • 2013年12月03日 21:28
  • 1406

PHP html li列表项目 标签

  • 2013年12月01日 20:14
  • 40KB
  • 下载

PHP html ol有序列表 标签

  • 2013年12月01日 20:43
  • 45KB
  • 下载

php整理html 自定义允许使用的标签和属性属性

发布文章帖子等一般都是会页面html做过滤、转ubb码等,但是在多层复杂嵌套的时候会遇到很多问题,如果你不想用户使用html完全可以使用strip_tags过滤,如果需要html过滤会用一些手段如正则...

PHP html p标签

  • 2013年11月26日 19:12
  • 699B
  • 下载

PHP学习笔记第【3】天(2014.11.2)--HTML标签学习

《html的元素总结》      1. 创建一个超文本标记语言文档。 2. (头)设置文档标题和其它在网页中不显示的信息,比如direction方向、语言代码Language Code、指...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php ---- 过滤 html 标签
举报原因:
原因补充:

(最多只允许输入30个字)