2013-04-07 23 views
0

我有HTML文本存储在数据库的其中一列中。列名是mailbody,表名是inbox_master。使用正则表达式获取数据 - PHP

mailbody列的一些细胞有一个像下面

<div id="uid-g-uid" style="">2802</div> 

<div id="uid-g-uid"> 
<p class="MsoNormal">6894</p> 
</div> 

<div id="uid-g-uid" style="display:none;"> 
6894</div> 

什么是这里常见的是id为“uid-一个div的div克的uid”。我希望能够阅读这个div的html。我知道这可以使用正则表达式来完成,但不知道如何去做。

下面是我已经试过,但不工作的所有时间

/(?<=\<div\ id\=\"uid\-g\-uid\").*?(?=\<\/div\>)/gim 
+4

你应该使用DOM而不是正则表达式。非常容易。 – silkfire 2013-04-07 10:47:57

+0

太棒了!你能建议一些我可以阅读和学习的文章!没有任何关于DOM的经验:-( – Guns 2013-04-07 10:48:55

+1

@ gunjansoni2002〜google是你的朋友。下面是DOM PHP手册:http://php.net/manual/en/book.dom.php – dave 2013-04-07 10:51:35

回答

4

感谢@sikfire和@戴夫正则表达式,我使用DOM得到了解决。下面是我的工作这让我

$doc = new DOMDocument(); 
@$doc->loadHTML('The HTML Content Goes here'); 
$d = $doc->getElementById('uid-g-uid'); 
echo 'Value is ' . $d['textContent']; 

Didnt知道这可能是这个简单!多谢你们!