php - 获取 HTML 标签之间的文本

标签 php html arrays string preg-match

<分区>

好的,我确定这是一个非常基本的问题,但我是 PHP 的新手,还没有弄明白。输入字符串是 $data im 试图继续拉取并且只使用第一个匹配项。以下是不正确的吗?这甚至可能不是执行该操作的最佳方式,我只是试图将内容拉入两个 html 标签(找到的第一组)之间并丢弃其余数据。我知道有类似的问题,我已经阅读了所有问题,我的问题是混合的,如果有更好的方法来做到这一点,以及我如何将匹配定义为剩余代码其余部分的新输入。如果我将 $matches 更改为 $data2 并从那里开始使用它,它会返回错误。

preg_match('/<h2>(.*?)<\/h2>/s', $data, $matches);

最佳答案

不要通过 preg_match 解析 HTML,而是使用这个 PHP 类:

The DOMDocument class

示例:

<?php 

$html= "<p>hi</p>
<h1>H1 title</h1>
<h2>H2 title</h2>
<h3>H2 title</h3>";
 // a new dom object 
 $dom = new domDocument('1.0', 'utf-8'); 
 // load the html into the object 
 $dom->loadHTML($html); 
 //discard white space 
 $dom->preserveWhiteSpace = false; 
 $hTwo= $dom->getElementsByTagName('h2'); // here u use your desired tag
 echo $hTwo->item(0)->nodeValue; 
 //will return "H2 title";
 ?>

Reference

关于php - 获取 HTML 标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699911/

相关文章:

java - 打印应在命令行中提供大小的数组

arrays - 为什么在有界队列中使用数组作为数据结构是个坏主意?

PHP 使用 <?php ?> 而不是 <? ?>

html - 我怎样才能使文本阻碍它的下划线 'block out' HTML/CSS 中带空格的下划线?

html - WordPress - 自定义存档页面

javascript - 在 html/javascript 警报中进行测验不起作用

java - 递归 - 与 in array 组合,在 Java 中没有重复

php - 使用 PHP 不保存在 MYSQL 中的值

php - 创建一个基于 AJAX 的聊天系统。如何避免提交内容的页面刷新并实时显示新消息

javascript - PHP-GET + Jquery 添加/删除类