将结果导出到txt文件

时间:2014-12-25 17:11:37

标签: php xml

我编写了一些东西,用于将数据从xml导出到txt:

例如,xml在多个<screenname>标记之间显示关键字。

然后,它每行创建一个txt一个关键字,如下所示:

keyword1
keyword2
etc...

这是我制作的代码:

<?php
$xml=simplexml_load_file("thexml.xml") or die("Error: Cannot create object");
foreach($xml->children() as $screenname) {
$nick =  $screenname->screenname;
file_put_contents('online.txt',$nick . "\n",FILE_APPEND);
}
?>

问题是我想在每次运行脚本时覆盖online.txt。如果我从脚本中删除FILE_APPEND,它只输出第一个结果。如果我使用FILE_APPEND运行脚本,它只会在每次运行脚本时为最后一个txt添加更多关键字。

2 个答案:

答案 0 :(得分:0)

所以你想在每次运行时创建一个新文件。只需用w +打开它,这将在第一个位置启动指针并覆盖/删除内容。

$file = fopen('online.txt', 'w+');

$xml=simplexml_load_file("thexml.xml") or die("Error: Cannot create object");
foreach($xml->children() as $screenname) 
  {
    $nick =  $screenname->screenname;
    fwrite($file, $nick.PHP_EOL);
  }
fclose($file);

答案 1 :(得分:0)

尝试在循环中添加if语句以打开/关闭file_append:

<?php
  $xml=simplexml_load_file("thexml.xml") or die("Error: Cannot create object");
  $new_file = True
  foreach($xml->children() as $screenname) {
    $nick =  $screenname->screenname;
    if ($new_file) {
       file_put_contents('online.txt',$nick . "\n");
       $new_file = False;
    } else {
       file_put_contents('online.txt',$nick . "\n",FILE_APPEND);
    }
  }
?>