Ответ 1
как это:
$dumpStr = var_export($var,true);
eval('$somevar = ' . $dumpStr.';');
вывод в файле output.txt выглядит следующим образом:
array (
'IMType' => '1',
'Email' => '[email protected]',
'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)
, но как снова прочитать его в переменной?
как это:
$dumpStr = var_export($var,true);
eval('$somevar = ' . $dumpStr.';');
Возможно, вы хотите сериализовать объект, а затем unserialize? http://php.net/serialize
Этот метод хорош для кэширования данных:
<?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';
?>
это очень просто, вы должны сохранить его как PHP файл, а не TXT, а затем
просто включите его в переменную :)
как это:
file_put_contents( '/some/file/data.php', '<?php return '.var_export( $data_array, true ).";\n" );
когда вам нужно получить к нему доступ, просто сделайте это:
$data = include '/some/file/data.php'
Я написал базовый парсер var_export
, без eval: VarExportParser.php
Использование:
require_once('VarExportParser.php');
$parsed = VarExportParser::parse("array ('IMType' => '1', 'Email' => '[email protected]')");
print(json_encode($parsed).PHP_EOL);
Выходы:
{"IMType":"1","Email":"[email protected]"}
Вы можете попробовать его js-версию здесь: text_transform.html (кнопка var_export to json)