我有以下HTML代码
<b>Description: </b>TEXT TO BE GRABBED<br>
我需要使用preg_match函数来获取“要写入的文本”。
我尝试了以下但没有成功:
<?php preg_match('#<b>Description: </b>(.*)<br>#', $content, $match); ?>
有人可以向我解释从HTML中提取文本的正确方法吗?
谢谢。
答案 0 :(得分:1)
不要使用正则表达式解析HTML。如果您必须这样做,那么您的尝试(在编辑之前的原始问题中)几乎正确,但您在/
中有额外的</br>
- 那里不是HTML中的一个。你应该:
preg_match('#<b>Description: </b>(.*)<br>#', $content, $match);
// $match[1] contains the text "TEXT TO BE GRABBED"
Obligatory link to explain why parsing HTML with regex is bad, very very bad...
答案 1 :(得分:0)
您在问题中包含的代码效果很好:
<?php
$content = "<b>Description: </b>TEXT TO BE GRABBED<br>";
preg_match('#<b>Description: </b>(.*)<br>#', $content, $match);
print_r($match);
DEMO。当我回复$match[1]
时,我得到了值:
要标记的文字