我编写了一些东西,用于将数据从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添加更多关键字。
答案 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);
}
}
?>