-1

在下面的程序中

$array[name1][0] = 'name';
$array[name1][1] = '11';
$array[name2][0] = 'name2';
$array[name2][1] = '11';
$fileName = "file.php"
$fp = fopen($fileName,'w');
$msg = $array;
fwrite($fp,$msg);
fclose($fp);

在这个文件“file.php”中,我想写一个数组......这样它读起来像

<?
$array[name1][0] = 'name';
$array[name1][1] = '11';
$array[name2][0] = 'name2';
$array[name2][1] = '11';

但它不起作用。

4

5 回答 5

2

使用json_encodeserialize获取数据结构的可存储(和紧凑)表示,然后使用 json_decodeunserialize将其取回。

于 2013-06-09T11:56:51.177 回答
0

你可以这样做:

fwrite($fp,print_r($msg,true));
于 2013-06-09T11:55:18.007 回答
0

您将获得的最接近的本机方法是使用var_export并将其返回值写入文件。

如果做不到这一点,您应该实现一些东西来从数组构建该格式。

于 2013-06-09T11:55:46.173 回答
0

var_export函数就是这样做的:

fprintf($fp, '<?php $array = %s;', var_export($array, true));

它会生成有效的 PHP 代码,之后您可以包含该文件:

include "file.php";

请注意,您可以return从 PHP 文件中获取,所以这也可以:

fprintf($fp, '<?php return %s;', var_export($array, true));

进而:

$array = include "file.php";

生成 PHP 代码的替代方法是json_encode/json_decodeserialize/ unserialize

于 2013-06-09T11:56:05.053 回答
0

如果您希望以后能够读取该文件并取回一个 PHP 数组,那么您需要“序列化”该数组:

然后

$array = unserialize(file_get_contents("test.data"));

如果它在文件中看起来是可读的,你 var_export($array,1) 或 print_r($array,1) 并存储它们的输出。

于 2013-06-09T11:58:44.580 回答