6个小时的研究,我无法理解这一点,因为我处于学习阶段,所以我决定在这个有用的社区问一个人
我有像remotesite.com/page1.html这样的远程页面,我们使用函数file_get_contents来获取它的源代码,然后我们使用DOMDocument编辑这个源代码,然后再将它打印到我们的页面
$url = "remotesite.com/page1.html";
$html = file_get_contents($url);
$doc = new DOMDocument(); // create DOMDocument
libxml_use_internal_errors(true);
$doc->loadHTML($html); // load HTML you can add $html
//here we do some edits to remove or add contents
我想在打印之前将以下Div添加到从远程站点获取的html代码:
<div style="float: right; padding-right: 2px;"><a class="open_event_tab" target="_blank" href="some-hard-coded-text-here_'+content+'_title_'+lshtitle+'_event_'+id+'.html" >open event</a></div>
在我搜索之后我设法写了创建div的函数,这是我的代码
function createDivNode($doc) {
$divNode = $doc->createElement('div');
$divNode->setAttribute('style', 'float: right; padding-right: 2px;');
$aNode = $doc->createElement('a', 'openEvent');
$aNode->setAttribute('class', 'open_event_tab');
$aNode->setAttribute('target', '_blank');
$aNode->setAttribute('href', 'some-hard-coded-text-here_'+content+'_title_'+lshtitle+'_event_'+id+'.html');
$divNode->appendChild($aNode);
return $divNode;
但现在我有两个问题:
1- href的软编码部分('+content+'_title_'+lshtitle+'_event_'+id+'
)无效。
2-我不知道将div添加到我想要的位置
我想遍历从远程站点获取的html源代码,以获得看起来像下面的每个td,并在关闭td标记之前添加div
<td colspan="2">
<b>Video </b>
<span class="section">Sports</span><b>: </b>
<span id="category466" class="category">Motor Sports</span>
//here i want to add my div
</td>
答案 0 :(得分:0)
广告1.看起来您在变量名称中错过了$
,并且PHP中的连接也是使用.
而不是+
完成的:
$aNode->setAttribute('href', 'some-hard-coded-text-here_' . $content . '_title_' . $lshtitle . '_event_' . $id . '.html');
广告2.对于那个,您可以构建一些与您的节点匹配的xpath query,然后只需$node->appendChild($divNode)
将其放入。