如何在PHP中将var_export的输出读入变量?

时间:2009-06-01 03:55:23

标签: php import

输出如下所示在output.txt文件中恢复:

array (
  'IMType' => '1',
  'Email' => 'test@gmail.com',
  'SignupName' => 'test11',
  'Password' => '11111',
  'Encrypted' => '',
  'Confirm' => '11111',
  'OldPassword' => '',
  'Name' => 'test',
  'SignupProvinceText' => 'province',
  'SignupCity' => 'cityname',
  'Street' => 'street x.y',
  'SignupIndustry' => 'IT',
  'SignupCompany' => 'jobirn',
  'SignupJt' => 'engineer',
  'CellPhoneNum' => '',
  'linked_in' => '',
)

它实际上是var_export(my_variable,true)的输出,但是如何再次将其读入变量?

5 个答案:

答案 0 :(得分:18)

也许你想序列化对象然后反序列化? http://php.net/serialize

答案 1 :(得分:16)

像这样:

$dumpStr = var_export($var,true);
eval('$somevar = ' . $dumpStr.';');

答案 2 :(得分:2)

此技术适用于数据缓存。

< ?php

// reading data from DB or an API webservice etc.
$arrName = array();    
$arrName = call_procedure_here();

$strFileContent = "<"."?php".PHP_EOL."$"."arrName = ".var_export($arrName, true).PHP_EOL."?".">";
file_put_contents('cache_folder/arrayfilename.php', $strFileContent);
...
//later... from another process;
include 'cache_folder/arrayfilename.php';
?>

答案 3 :(得分:0)

我写了一个基本的var_export解析器,没有eval:VarExportParser.php

用法:

require_once('VarExportParser.php');
$parsed = VarExportParser::parse("array ('IMType' => '1', 'Email' => 'test@gmail.com')");
print(json_encode($parsed).PHP_EOL);

输出:

{"IMType":"1","Email":"test@gmail.com"}

您可以在此处尝试js版本:text_transform.html从var_export到json 按钮)

答案 4 :(得分:-1)

非常简单,您必须将其另存为php文件而不是txt,然后

仅将其包含在变量中:)

像这样:

file_put_contents( '/some/file/data.php', '<?php return '.var_export( $data_array, true ).";\n" );

当您需要访问它时,只需执行以下操作:

$data = include '/some/file/data.php'