如何用preg_match_all匹配除html标签之外的文本

北方的刀郎 2023-12-06 14:57:17
$html = '这是一段文字一<p>这是一段文字二</p><table><tr><td>这是一段文字三</td></tr></table><div><img src="http://www.baidu.com" alt="产品"/>这是一段文字四</div>这是一段文字五';

preg_match_all('#>([^<>]+)<#', $html, $matches);

var_dump($matches);exit;

结果:
array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(23) ">这是一段文字二<"
    [1]=>
    string(23) ">这是一段文字三<"
    [2]=>
    string(23) ">这是一段文字四<"
  }
  [1]=>
  array(3) {
    [0]=>
    string(21) "这是一段文字二"
    [1]=>
    string(21) "这是一段文字三"
    [2]=>
    string(21) "这是一段文字四"
  }
}

请问,这是一段文字一,这是一段文字五,如何匹配的到?谢谢

...全文
4567 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
北方的刀郎 2023-12-07
  • 打赏
  • 举报
回复

preg_match_all('#([^<>]+)<|>([^<>]+)<|>([^<>]+)#', $html, $matches);

这种可以但是没放到同一个数组里去。

ZhangChc丶 2023-12-06
  • 打赏
  • 举报
回复

$html = '这是一段文字一<p>这是一段文字二</p><table><tr><td>这是一段文字三</td></tr></table><div><img src="http://www.baidu.com" alt="产品"/>这是一段文字四</div>这是一段文字五';

preg_match_all('#>([^<>]+?)<#', $html, $matches);

var_dump($matches[1]);


结果:
array(5) {
  [0]=>
  string(15) "这是一段文字一"
  [1]=>
  string(15) "这是一段文字二"
  [2]=>
  string(15) "这是一段文字三"
  [3]=>
  string(15) "这是一段文字四"
  [4]=>
  string(15) "这是一段文字五"
}

北方的刀郎 2023-12-07
  • 举报
回复
@ZhangChc丶 您这不行啊。

20,397

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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