免费提问

php正则表达式如何过滤HTML标签?

144
提问者 没有理由不恨你
2019-08-24 07:10 悬赏 0财富值 阅读 2107回答 1

是这样的,我想在PHP语言里面用正则表达式过滤HTML标签,只取里面的汉子,请问这应该怎样操作?

比如下面的代码:

<div><a class="a1" href="https://ask.dobunkan.com/tag/BTbi.html" target="_blank">BT币</a><a class="a2" href="https://ask.dobunkan.com/tag/pingtaibi.html" target="_blank">平台币</a><a class="a3" href="https://ask.dobunkan.com/tag/zhinengxiaochengxu.html" target="_blank">智能小程序</a><a class="a4" href="https://ask.dobunkan.com/tag/baiduxiaochengxu.html" target="_blank">百度小程序</a><a class="a5" href="https://ask.dobunkan.com/tag/iDrive.html" target="_blank">iDrive</a><a class="a6" href="https://ask.dobunkan.com/tag/carplayditu.html" target="_blank">carplay地图</a><a class="a1" href="https://ask.dobunkan.com/tag/baoma3xi.html" target="_blank">宝马3系</a><a class="a2" href="https://ask.dobunkan.com/tag/carplay.html" target="_blank">carplay</a><a class="a3" href="https://ask.dobunkan.com/tag/baomacarplay.html" target="_blank">宝马carplay</a><a class="a4" href="https://ask.dobunkan.com/tag/pingguocarplay.html" target="_blank">苹果carplay</a><a class="a5" href="https://ask.dobunkan.com/tag/jiankangwangzhandaquan.html" target="_blank">健康网站大全</a><a class="a6" href="https://ask.dobunkan.com/tag/yonghutiyansheji.html" target="_blank">用户体验设计</a><a class="a1" href="https://ask.dobunkan.com/tag/quyuyingxiao.html" target="_blank">区域营销</a><a class="a2" href="https://ask.dobunkan.com/tag/chanpinmulusheji.html" target="_blank">产品目录设计</a><a class="a3" href="https://ask.dobunkan.com/tag/cilisousuo.html" target="_blank">磁力搜索</a><a class="a4" href="https://ask.dobunkan.com/tag/wangzhantuiguangjihua.html" target="_blank">网站推广计划</a><a class="a5" href="https://ask.dobunkan.com/tag/wangzhanjiazhi.html" target="_blank">网站价值</a><a class="a6" href="https://ask.dobunkan.com/tag/shafakewangzhan.html" target="_blank">沙发客网站</a></div>

我想过滤掉所有的HTML标签,只取里面的关键词,并把这些关键词依次写入数组,请问这样的正则表达式在PHP语言里面应该怎样写?

PHP
登录 后发表回答
谢续斌
1楼 · 2019-08-24 08:15.采纳回答

其实,无论是采集文章还是提取关键词,在PHP里面用正则表达式其实都是可以做得到的,有两个思路可以给你参考一下:

第一步,是找出规律,写一个正则表达式,先把这些写入到一个数组里面。

php代码如下:

$urlpregzuijia = '/


下面有两种方法可以提取出关键词

第一种方法是过滤掉所有的HTML标签和空格的正则表达式,代码如下:

//过滤HTML标签 
$search360 = array ("'[removed]]*?>.*?[removed]'si", // 去掉 javascript 
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记 
"'([\r\n])[\s]+'", // 去掉空白字符 
"'&(quot|#34);'i", // 替换 HTML 实体 
"'&(amp|#38);'i", 
"'&(lt|#60);'i", 
"'&(gt|#62);'i", 
"'&(nbsp|#160);'i" 
); 
$replace = array ("","","\\1","\"","&","<",">"," "); 

$bresult = preg_replace($search360,$replace,$urlalltxt);


第二种方法就是,直接从里面提取中文字符,php正则表达式如下:

  for($i=0;$i<$arrcileng;$i++){
   $tmp ="#[\x7f-\xff]+(?:\s*[\x7f-\xff]+)*#";
   preg_match_all($tmp,$urlalltxt[$i][0], $urltxt[$i], PREG_SET_ORDER);
   $urlallone[$i] = $urltxt[$i][0][0];
  }


看看是不是很简单?万能的正则表达式在php里面几乎可以帮你搞定一切疑难杂症。


网站简介 | 竞价技巧 | 网站建设 | 原创作品 | 联系我们 |

鄂ICP备17013851号-4|经营许可证:鄂B2-20160818 |互联网药品信息服务资格证: 粤20130124|鄂公网安备:42010601000001|版权登记号:2016SR017186