请高手帮忙写个正则

walk walk 2017-03-08 11:55:45
我想将<td>和</td>标记中间的html标记过滤掉,但保留文字内容
不知道该怎么写
例如: <td valign="middle" style="text-align:center; ">这里可能有文字也可能直接是html标记<b>文字</b>aa<b>文字</b>这里可能有文字也可能直接是html标记</td>
过滤后变成 <td>这里可能有文字也可能直接是html标记文字aa文字这里可能有文字也可能直接是html标记</td>
...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
风钢我 2017-03-08
  • 打赏
  • 举报
回复

$str='<td valign="middle"  style="text-align:center; ">这里可能有文字也可能直接是html标记<b>文字</b>aa<b>文字</b>这里可能有文字也可能直接是html标记</td>';
preg_match_all('/<td (.*?)>(.*?)<\/td>/',$str,$m);


$msg = preg_replace("/<[^>]+>/", "", $m[2][0]);
echo "<td>".$msg."</td>";
写的比较菜,不过可以用,坐等高手优化代码。
xuzuning 2017-03-08
  • 打赏
  • 举报
回复
$s =<<< TXT
<td valign="middle"  style="text-align:center; ">这里可能有文字也可能直接是html标记<b>文字</b>aa<b>文字</b>这里可能有文字也可能直接是html标记</td>
TXT;

echo preg_replace_callback('#<td\s.*?>(.*?)</td>#is', function($m) {
  return '<td>' . strip_tags($m[1]) . '</td>';
}, $s);
<td>这里可能有文字也可能直接是html标记文字aa文字这里可能有文字也可能直接是html标记</td>
walk walk 2017-03-08
  • 打赏
  • 举报
回复
谢谢版主和楼上兄弟,版主给的比较通用一些

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧