2011-12-21 39 views
1

有很多关于它的线程,但我仍然需要帮助。 我需要使用preg_match从HTML标签中获取我需要的文本。php preg match - 如何获取html标记?

的HTML是:

<td> 
<center> 
<b> 
<font face="Arial" color="red">(I need this content)</font> 
</b> 
</center> 
</td> 

(顺便说一句我解决我的问题与DOM文档,但我需要使用的preg_match)

请帮助。

问候。

+1

是你正在寻找的文本*只*将在标签,或者它可以出现在任何地方?如果您知道文本将包含的常规区域,则可以使用'strip_tags'来删除所有HTML,并留下所需的文本。 – 2011-12-21 17:57:03

回答

2

This?

<?php 
$html = '<td> 
<center> 
<b> 
<font face="Arial" color="red">(I need this content)</font> 
</b> 
</center> 
</td>'; 

$matches = array(); 

preg_match_all('/<font.*?>(.*?)<\/font>/is', $html, $matches); 

var_dump($matches[1]); 

编辑:您可能要包括“FACE =‘宋体’颜色=‘红’” - 位在正则表达式,除非你想匹配每一个字体元素的内容。您可能还想包含<b><center>元素以进一步缩小搜索范围。

请注意:此HTML看起来非常过时。使用中心和字体元素非常,非常糟糕的做法。所以使用表格进行布局。

+0

是的,这不是我的代码,这种方式我需要从旧网站获取数据。 不幸的是我仍然得到空阵列;/ – 02446 2011-12-21 18:08:34

+0

这很奇怪。我发布的代码虽然...(我已经在本地测试过)。 – powerbuoy 2011-12-21 18:30:06

+0

好的,终于工作:)非常感谢! :) – 02446 2011-12-21 18:42:17