我正在从另一个网站获取数据,删除我不需要的内容。并希望将我收集的信息存储到一个文件中。我已经完成了我需要的一切,但我的文件每行都写入数组
这是我正在处理的代码:
$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是可以的,序列化也是一种选择,如果你不介意文件大小