将Div添加到从远程站点获取的html代码

时间:2013-08-01 22:35:16

标签: php

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>

1 个答案:

答案 0 :(得分:0)

广告1.看起来您在变量名称中错过了$,并且PHP中的连接也是使用.而不是+完成的:

$aNode->setAttribute('href', 'some-hard-coded-text-here_' . $content . '_title_' . $lshtitle . '_event_' . $id . '.html');

广告2.对于那个,您可以构建一些与您的节点匹配的xpath query,然后只需$node->appendChild($divNode)将其放入。