2014-12-25 5 views
0

Я закодирован что-то экспортировать данные из 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, созданному каждый раз при запуске скрипта.

+1

Вы должны улучшить свою логику, удалить файл, то в первый ваш взгляд Предохранять добавление ключевых слов. – MTahir

+0

Вы добавляете внутри цикла. Если вы создадите внутри цикла, файл будет содержать только последнюю запись. Это просто опечатка. – hakre

ответ

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); 
+0

Спасибо, что это работает! –

+0

Отлично! Пожалуйста! – baao

0

Попробуйте добавить, если заявление в петле, чтобы включить 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); 
    } 
    } 
?> 
Смежные вопросы