【发布时间】:2011-02-23 18:29:25
【问题描述】:
与我之前的帖子相关的一个问题,关于Simple HTML DOM Parser。 这是我的 html 代码:
<div id="header">
<h1>Hello World!</h1>
</div>
<div id="container">
<div id="content">
<p> </p>
</div>
</div>
<div id="footer">
<p>LINK HERE</p>
</div>
我想在页脚的<p> 上插入一个链接。我可以插入一个链接,但问题是,如果在 div 页脚的<p> 之前还有另一个<p>,链接将插入到<p> 在 html 代码中。就像它无法识别或无法检测到它应该只在 div id=footer 中搜索,而不是整个 html 代码。
这是我得到的:
foreach($html->find('div#footer') as $footer)
{
foreach($footer->find('p') as $p)
{
$footerInnerText = $p->find('p', 0)->innertext;
$theLink = '<a href="index.php" title="" rel="home">'. $footerInnerText. '</a>';
$html->find('p', 0)->innertext = "\n" .$theLink."\n";
}
我也试过这个:
$e = $html->find('div#footer', 0)->find('p', 0);
我在这里缺少什么?
【问题讨论】:
-
您的问题似乎缺少部分内容。我不明白你在问什么。您想在哪里插入链接? “我想在页脚上插入一个链接”,这是什么意思?
-
如何使用正则表达式和 preg_replace。您的正则表达式类似于: "/(div id=\"footer\">).*()/"
).*(
).*(
@Flying Swissman: NO
我无法使用正则表达式解析 html
@BoltClock 是的,它不应该用于解析一段随机的 html,但看到这个例子,我认为它是非常简单的一次性 HTML。我的反应是仓促。