如何从数组中删除所有 html 标签?

新手上路,请多包涵

php 中是否有一个函数可以对数组的所有条目执行正则表达式替换操作?

我有一个数组,其中包含许多带有文本的 html 标签,我想删除这些标签。

所以基本上我正在转换这个:

 $m = [
"<div>first string </div>",
"<table>
   <tr>
     <td style='color:red'>
       second string
     </td>
   </tr>
 </table>",
"<a href='/'>
   <B>third string</B><br/>
 </a>",
];

对此:

 $m = [
"first string",
"second string",
"third string"
]

正则表达式(希望)匹配我想要删除的所有内容,如下所示:

 /<.+>/sU

问题是我现在应该如何使用它? (我的数组实际上有超过 50 个条目,每个条目中可能有 10 个匹配项,所以使用 preg_replace 可能不是正确的方法,是吗?)

原文由 Forivin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 261
2 个回答

这里不需要正则表达式,只需使用 strip_tags() 摆脱所有 html 标签,然后简单地使用 trim() 输出,例如

$newArray = array_map(function($v){
    return trim(strip_tags($v));
}, $m);

原文由 Rizier123 发布,翻译遵循 CC BY-SA 3.0 许可协议

array_map()strip_tags()

 $m = array_map( 'strip_tags', $m );

同样的原则也适用于修剪。

原文由 Danijel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题