用php过滤html部分标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用php过滤html部分标签相关的知识,希望对你有一定的参考价值。

要过滤掉 字体标签 和 字颜色标签 字体大小的标签。。。过滤掉多余的</br>标签

$str=preg_replace("/\\s+/", " ", $str); //过滤多余回车
$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<\\!--.*?-->/si","",$str); //注释
$str=preg_replace("/<(\\!.*?)>/si","",$str); //过滤DOCTYPE
$str=preg_replace("/<(\\/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(\\/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(\\/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(\\/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(\\/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(\\/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*?)>(.*?)<(\\/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(\\/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(\\/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(\\/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(\\/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(\\/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(\\/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(\\/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(\\/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(\\/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(\\/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(\\/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(\\/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(\\/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\\s*=/si","On\\\\1=",$str); //过滤script标签
$str=preg_replace("//si","&#",$str); //过滤script标签,如javAsCript:alert(

清除空格,换行

function DeleteHtml($str)

$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("\\t","",$str);
$str = ereg_replace("\\r\\n","",$str);
$str = ereg_replace("\\r","",$str);
$str = ereg_replace("\\n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);


过滤HTML属性

1,过滤所有html标签的正则表达式:

复制代码 代码如下:

</?[^>]+>

//过滤所有html标签的属性的正则表达式:

$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\\\1>",$html);

3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):

复制代码 代码如下:

</?[^pP/>]+>

4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):

复制代码 代码如下:

</?[aApPbB][^>]*>

5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):

复制代码 代码如下:

\\s(?!alt)[a-zA-Z]+=[^\\s]*

6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):

复制代码 代码如下:

(\\s)alt=[^\\s]*
参考技术A 可以使用strip_tags函数,去除html标签,就包括去除字体标签了
给你个例子,php官方手册上的,你也可以自己查一下这个函数的用法
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
echo strip_tags($text, '<p><a>'); //允许<p>、<a>标签
?>
输出结果:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
希望对你有点帮助追问

我再要把 div 转化成 p 这个应该怎么写呢

参考技术B 使用php内置函数 strip_tags可以从字符串中去除 HTML 和 PHP 标记;
但是如果只想去除指定的字符,可以使用preg_replace, 使用正则将符合规则的替换为空字符串。
参考技术C htmlspecialchars

csharp 部分视图+过滤/排序和过滤选择标签

// კონტროლერიდან მნიშვნელობის გატანა

public ActionResult Select()
        {
            var roles = db.Roles.ToList();
            roles.Insert(0, new Role { Id = 0, Name = "აირჩიე როლი" });
            ViewBag.roles = roles;
            ViewBag.selctedrol = 0;
            return View();
        }
        
        
// dropdownlist -ს შექმნა view ში 

@Html.DropDownList("select tag Name (same as model name)", // სელექთ ტაგის სახელი
new SelectList(ViewBag.roles, "Id", "Name", 
ViewBag.selctedrol~დეფოლტ მნიშვნელობა), // კალსი რომელსაც გადაეცემა მონაცემები
new { @class = "form-control" })




// ფილტრეზე მოთხოვნა გაფილტვრა ერთი სელექთიდან მეორესი

<script>
    $("#role").on("change", function () {
        var roleId = $(this).val();
        $.ajax({
            async: true,
            type: "Get",
            url: "/Home/Filter_user_by_role",
            data: {
                'roleId': roleId
            },
            success: function (data) {
                $("#User").html('');
                $('<option>').val("0").text("აირჩიე მომხმარებელი").appendTo("#User");
                jQuery.each(data, function (i, val) {
                    $('<option>').val(val.ID).text(val.Name).appendTo('#User')
                });
            },
            error: function () {
                alert("error")
            }
            })
    })
</script>

// კონტროლერის მხარეს


public JsonResult Filter_user_by_role(int roleId)
        {
            var result = (from item in db.users.Where(x=>x.User_Role.Any(e=>e.RoleId == roleId))
                          select new { item.Id, item.Name }).ToList();
            return Json(result, JsonRequestBehavior.AllowGet);
        }
// partial view შექმნა:
shared folder  = _partial view - (მოსანიშნი ტაბი) - create as partial.


//view-ში
@using პროექტის სახელი.Models;
@model IEnumerable<პროექტის სახელი..Models.კლასის სახელი>

// თეიბლს  აუცილებლად უნდა ქონდეს კლასი ან ადი რომლითას შემდეგ  მივწვდები !important :)


// scpript აუცილებლად უნდა დავამატოთ ajax
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript" language="javascript"></script>


// script- ების ქვემოთ

@Ajax.ActionLink("ყველა"/სახელი, "GetAllUsers"/მეთოდის სახელი, new AjaxOptions()
{
    HttpMethod = "Get",//რექვესთის მეთოდი გეთი
    UpdateTargetId = "users-table", //თეიბლის აიდი
    InsertionMode = InsertionMode.Replace // რეფლეისი
})

// კონტროლერში

public PartialViewResult GetStudents()
{
    var student = db.users.Where(x => x.User_Role.Any(x => x.RoleId == 3)).ToList();
    return PartialView("_Partial", student);// პირველ პარამეტერად გადაეცემა view სახელი და 
    //მერორედ მოდელს რასაც ელოდება view -ში
}



以上是关于用php过滤html部分标签的主要内容,如果未能解决你的问题,请参考以下文章

留言板防灌水功能应该怎么做?怎么防止sql注入?用PHP编写

PHP实现过滤各种HTML标签

PHP教程 PHP之HTML 标签2

html中的公共部分怎么处理

PHP生成HTML文件, SummerHtml

高级正则技巧PHP正则表达式过滤html标签属性(DEMO)