将数据从PHP中的XML逐行保存到文件中


Saving data to file in line by line from XML in PHP

我正在从另一个网站获取数据,删除我不需要的内容。并希望将我收集的信息存储到一个文件中。我已经完成了我需要的一切,但我的文件每行都写入数组

这是我正在处理的代码:

    $xml = simplexml_load_file('website.xml');
    $item_array = array();
    $item_array[0] = 0;
    $item_array[1] = 2;
    $item_array[2] = 4;
    $item_array[3] = 6;
    $item_array[4] = 8;
    $item_array[5] = 9;
    $item_array[6] = 10;
    $item_array[7] = 11;
    $item_array[8] = 12;
    $item_array[9] = 13;
    $item_array[10] = 14;
    $item_array[11] = 15;
    $item_array[12] = 16;
    $patterns = array();
    $patterns[0] = '/Sum It Up/';
    $patterns[1] = '/=/';
    $patterns[2] = '/Powerball/';
    $patterns[3] = '/MegaBall/';
    $patterns[4] = '/Megaplier/';
    $patterns[5] = '/Bonus Ball/';
    $print = array();
    foreach($item_array as $news){
    echo $xml->channel->item[$news]->title.'<br>';
    $new_string = $xml->channel->item[$news]->description;
    $new_string = preg_replace("/[^A-Za-z0-9 ]/", '', $new_string);
    $new_string = preg_replace($patterns, '', $new_string);
    echo $new_string.'<br>';
    $print[] = array($new_string);
    }
    $filename = 'numbers.txt';
    $handle = fopen($filename, 'w');
    @$output = implode("'r'n", $print);
    fwrite($handle, $output);
    fclose($handle);

我只想将数字保持为数组,并逐行将数字写入文件。

通过下面的讨论,问题终于解决了。这里应该使用$print[] = $new_string来确保$print是一个级别的数组。然后可以使用var_export或自定义样式逐行打印。$print[]表示在这个数组中添加一个项,如果该项已经是一个数组,$print将是一个2级数组。

-----老答案----

使用serialize()函数,它可以将数组序列化为字符串,然后您可以将其写入文件。使用unserialize()可以使字符串返回到数组。

按照我的方式,vbs-encode VS json_encode是可以的,序列化也是一种选择,如果你不介意文件大小