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标记属性类用法实例

  • heshi_yao
  • heshi_yao
  • 2016年09月18日 22:53
  • 666

php过滤html标签正则表达式

在web开发中很多地方会用到文章显示,而当文章中有很多自带标签和样式时,显示的效果往往不近如人意。这里给出php过滤html标签的一些正则表达式供大家参考,共同学习。...
  • u013110984
  • u013110984
  • 2015年03月24日 09:32
  • 735

PHP 过滤html标签的函数

PHP过滤html标签竟然有内部的函数可用,相对于asp来说简直是太强大了。 php过滤html的函数: strip_tags(string)  这样就可以过滤掉所有的html标签了...
  • hanshileiai
  • hanshileiai
  • 2014年08月29日 16:40
  • 4896

php 过滤掉html标签及标签内的所有内容

$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/
  • centaury32
  • centaury32
  • 2016年10月19日 11:53
  • 608

php过滤html(php过滤html函数)

and echo strip_tags($text, ''); //过滤除开和外的所有标签 ?> 上面将输出的结果是: Test paragrap...
  • qiyuan371
  • qiyuan371
  • 2011年01月04日 09:56
  • 4704

php 使用htmlspecialchars() 和strip_tags函数过滤HTML标签的区别

原文地址:http://www.manongjc.com/article/1103.html 先来看一下htmlspecialchars函数和strip_tags函数的使用实例: ...
  • wuxiaopeng_1986
  • wuxiaopeng_1986
  • 2016年09月29日 17:17
  • 3681

php完全过滤HTML,JS,CSS等标签

记得以前写过一篇文章 php有效的过滤html标签,js代码,css样式标签:
  • chamtianjiao
  • chamtianjiao
  • 2011年01月19日 10:48
  • 2517

php正则过滤html标签、空格、换行

$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/
  • gxrj11
  • gxrj11
  • 2016年04月27日 17:22
  • 798

PHP 过滤HTML中除了img标签外其它所有标签

/*过滤html标签*/ public function cleanhtml($str,$tags=''){//过滤时默认保留html中的标签 $search = array(...
  • qq19124152
  • qq19124152
  • 2015年04月24日 20:06
  • 2104

PHP下富文本HTML过滤器:HTMLPurifier使用教程

一、如何在程序中调用HTMLPurifier 1、一般性调用 根据官方的文档中,我们可以要在PHP程序中调用HTMLPurifier,需要先将HTMLPurifier.auto.php引入...
  • u011871037
  • u011871037
  • 2016年05月21日 11:45
  • 886
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php ---- 过滤 html 标签
举报原因:
原因补充:

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