我的div包含其他html tags
以及text
我想在所有html tags
<div class="rpr-help m-chm">
<div class="header">
<h2 class="h6">Repair Help</h2>
</div><!-- /end .header -->
<div class="inner m-bsc">
<ul>
<li><a href="#videol">Repair Video</a></li>
<li><a href="#qa1">Repair Q&A</a></li>
</ul>
</div>
<div>
<br>
<span class="h4">Cross Reference Information</span><br>
<p>Part Number 285753A (AP3963893) replaces 1195967, 280152, 285140, 285743, 285753, 3352470, 3363664, 3364002, 3364003, 62672, 62693, 661560, 80008, 8559748, AH1485646, EA1485646, PS1485646.
<br>
</p>
</div>
</div>
这是我的Regexp
preg_match_all("/<div class=\"rpr-help m-chm\">(.*)<\/.*>/s", $urlcontent, $description);
每当我将这个完整的div
分配给$urlcontent
变量时,它的工作正常。
但是当我从$urlcontent = "www.test.com/test.html";
这样的真实网址中提取数据时
它返回完整的网页脚本。
如何获取<div class="rpr-help m-chm">
的内容?
我的正则表达式中是否有任何更正要求?
任何帮助将不胜感激。谢谢
答案 0 :(得分:1)
无法通过正则表达式解析HTML / XHTML。 Source
您无法使用正则表达式解析[X] HTML。因为HTML无法解析 正则表达式。正则表达式不是可用于正确解析HTML的工具
根据您使用的语言,请考虑使用第三方库进行HTML解析。
答案 1 :(得分:0)
use this function
function GetclassContent($tagStart,$tagEnd,$content)
{
$first_step = explode( $tagStart,$content );
$second_step = explode($tagEnd,$first_step[1] );
return $second_step[0];
}
Steps to Use Above function
$website="www.test.com/test.html";
$content=file_get_contents($website);
$tagStart ='<div class="rpr-help m-chm">';
$tagEnd = "</div >";
$RequiredContent = GetclassContent($tagStart,$tagEnd,$content);