【发布时间】:2017-11-30 18:00:11
【问题描述】:
我有一些 html 文件包含相同的标签,这些标签之间有不同的字符串,我想从特定标签中获取字符串,在它找到第一个匹配项之后,这个字符串是唯一添加到数组中的,有关更多详细信息,请参阅这段代码。
html:
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Some Text</h1>
<p>This is the first Paragraph</p>
<ul>
<li></li>
<li></l1>
</ul>
<p>This is the second Pharagraph</p>
</body>
</html>
html 文件将包含更多元素
我只想获取第一个 <p> 中的文本,并防止浪费时间搜索整个 html 文件,而我只想从特定标签中获取一个值。
PHP:
//Loop inside all the HTML files inside a folder
$files = glob("files/*.html");
foreach($files as $file){
//Get the whole content of each HTMl file
$content = file_get_contents($file);
//Search for specific tag
preg_match_all('#<p>(.*?)<\/p>', $content, $matches);
}
我只想将第一个匹配项的值添加到$matches。
我无法编辑 html 代码以将 class 或 id 添加到我想从中获取值的标签,因为我不是创建它们的人,我无法手动编辑所有文件强>
我不介意使用其他方式来获取这些值,但它应该可以达到我想要的效果(只有第一个匹配项,然后停止搜索整个文件)
【问题讨论】:
-
使用
preg_match?还是更好的 DOM? -
您认为
preg_match_all中的“全部”代表什么...?没有那个...可能有对应的吗? -
@CAustin,它是如何复制的? ,我问的是不只是关于正则表达式的不同问题!