Как прочитать вывод var_export в переменную в PHP? - PullRequest
14 голосов
/ 01 июня 2009

выходные данные, как показано ниже, восстановлены в файле 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 ]

18 голосов
/ 01 июня 2009

Возможно, вы хотите сериализовать объект, а затем десериализовать? http://php.net/serialize

16 голосов
/ 01 июня 2009

как это:

$dumpStr = var_export($var,true);
eval('$somevar = ' . $dumpStr.';');
2 голосов
/ 29 июля 2015

Этот метод хорош для кеширования данных.

< ?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';
?>
0 голосов
/ 09 января 2019

Я написал базовый 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"}

Вы можете попробовать его версию здесь: text_transform.html (кнопка var_export to json )

0 голосов
/ 30 октября 2018

это очень просто, вы должны сохранить его как файл php, а не как текст, а затем

просто включите его в переменную:)

как это:

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

когда вам нужно получить к нему доступ, просто сделайте это:

$data = include '/some/file/data.php'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...