0

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

这是我正在处理的代码:

    $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);

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

4

2 回答 2

0

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

于 2013-07-22T03:13:15.793 回答
0

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

-----旧答案-----

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

于 2013-07-22T02:50:56.033 回答