通过DOM文档中插入一个div到内容,从远程站点获得(Inserting a Div through

2019-10-18 10:19发布

我很抱歉,如果标题在这里混淆的解释是:

说我们有像远程页面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 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> 

以下是我已经试过,但软编码部分( '+content+'_title_'+lshtitle+'_event_'+id+' )中的href不工作

我知道下面我的代码可能看起来愚蠢的,但很抱歉我没有在PHP足够的知识

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;

}

我想遍历源从远程站点必须让每一个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>

6个小时的研究和我还在学习阶段,我可以不知道这一点,所以我决定在这里问别人在这个社区有帮助

Answer 1:

现在仍然搞不清楚你的问题,但我认为,要添加/追加一个动态div每个内td ,如果是这样的话,那么你可以试试这个(至少,你会得到一个想法,这是非常干净)

var content = 'someContent', lshtitle = 'someTitle', id = 'anId';
var attr = {
    'class' : 'open_event_tab',
    'target' : '_blank',
    'href' : 'some-hard-coded-text-here_' + content + '_title_' + lshtitle + '_event_' + id + '.html',
    'text' : 'open event'
};
var link = $('<a/>', attr);
var div = $('<div/>', { 'style' : 'float:right;padding-right:2px;' }).append(link);

$('#myTable td').append(div);

DEMO。

更新:(问题是混乱的,所以更新的回答如下)

只需下载简单的HTML DOM Perser和( 文件在这里 )

    include('simple_html_dom.php');
    $html = file_get_html('remotesite.com/page1.html');
    foreach($html->find('table td') as $td) {
        $td->innertext = $td->innertext . '<div>New Div</div>';
    }

此外,只修改td小号那些具有class=category

    foreach($html->find('table td.category') as $td) {
        $td->innertext = $td->innertext . '<div>New Div</div>';
    }

和你做。 注意<div>New Div</div>它仅仅是一个例子,希望,你可以根据你的需要做出来。

例子中的可能的结果:

<table>
    <tbody>
        <tr>
            <td colspan="2">
                <b>Video </b> <span class="section">Sports</span><b>: </b> <span id="category466" class="category">Motor Sports</span>
                <div>New Div</div>
           </td>
        </tr>
        <tr>
            <td colspan="2">
                <b>Video </b> <span class="section">Sports</span><b>: </b> <span id="category466" class="category">Motor Sports</span>
                <div>New Div</div>
            </td>
        </tr>
    </tbody>
</table>


Answer 2:

JQUERY

如果你想在每一个TD使用附加的末尾插入股利()

$('td').append('<div>Test</div>'); 

在每个TD使用预先准备的开始

$('td').prepend('<div>Test</div>');

欲了解更多信息jQuery的网站



文章来源: Inserting a Div through DOMDocument into content got from remote site