「已注销」 2016-05-26 14:23 采纳率: 100%
浏览 1565
已采纳

求大神帮忙写一个正则表达式php过滤编辑器的新闻内容

从网站A数据库中读取的新闻内容(HTML源码格式)写入网站B的新闻表中,格式不统一,而且有很多冗余代码,很多是从office复制过去的,需要过滤掉网站A新闻内容中冗余的HTML代码。新闻内容在php的$NEWS字段中,给这个字段用正则表达式处理一下。
具体的代码说明写了个网页,方便大神看求助写正则表达式
后面是php连接查询的代码,方便大神测试,数据库mysql,表是editor,两个字段ID(INIT)和news(MEDIUMTEXT):
$mysql_db_hostname = "localhost";
$mysql_db_user = "root";
$mysql_db_password = "root";
$mysql_db_database = "test";
$con = mysqli_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password, $mysql_db_database);
mysqli_query($con, "SET NAMES utf8");
$sql="SELECT * FROM editor";
$re=mysqli_query($con,$sql)or die("读取数据出错". mysqli_error());
while($row=mysqli_fetch_array($re))
{
$str=$row["news"];
echo $str;
}

  • 写回答

2条回答 默认 最新

  • devmiao 2016-05-26 14:49
    关注
    $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标签 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 10月15日

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办