如何向文件添加内容,但从第4行开始?

时间:2018-01-26 20:44:37

标签: php

我有一个xml模板,目前看起来像这样:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<tv>
<channel id="560"><display-name lang="he">560</display-name></channel>

**** The content I save later will start from line 4 (here) ****

</tv>

我的PHP文件正在拖动其他文件中的内容:

<?php
file_get_contents("http://website.com/guide?1");
file_get_contents("http://website.com/guide?2");
file_get_contents("http://website.com/guide?3");
file_get_contents("http://website.com/guide?4");
file_get_contents("http://website.com/guide?5");

我想要做的是将内容添加到文件中,

但是从第4行和第4行开始不删除最后一行

更新:

<tv>

//I want the content to stick to here, before the /tv root

</tv>  //Sould be the last line

<channel id="861"><display-name lang="he">861</display-name></channel>

<programme start="20180127013500 +0200" stop="20180127020000 +0200" channel="861">
<title lang="he">היום בלילה</title>
<desc lang="he">גורי אלפי מסכם מדי לילה את אירועי היום בתכנית בידור מצחיקה ובועטת: האנשים שעשו את החדשות, פוליטיקאים, סטנדאפיסטים ומוזיקאים. כ' סמויות.</desc>
</programme>

1 个答案:

答案 0 :(得分:0)

假设您的文件也符合XML,您可以这样做(否则,尝试使用DOMDocument::loadHTMLFile方法加载远程文件,而不是仅用于XML的DOMDocument::load方法:< / p>

$dom = new DOMDocument;
$dom->load('template.xml');
$root = $dom->documentElement;

for ($i=1; $i<6; $i++) {
    $domi = new DOMDocument;
    $domi->load('http://website.com/guide?'.$i);
    $rooti = $domi->documentElement;
    $node = $dom->importNode($rooti, true);
    $root->appendChild($node);
}

$result = $dom->saveXML();

请注意,如果未加载远程文件,则可以使用libxml_set_streams_context设置流参数(尤其是用户代理)。