使用包含文件中的变量

时间:2010-10-23 10:23:51

标签: php

我使用var_export($var,true);导出了一个数组,并将其存储到文件arraystore.php

当我在另一个页面上包含arraystore.php并尝试使用该数组时,它不起作用?应该是,还是有办法导入var以便在新页面中使用?也许序列化和发送作为第二页上使用的类的构造函数?那会有用吗?

4 个答案:

答案 0 :(得分:0)

该数组现在是文本文件中的字符串。要导入:

 $str=file_get_contents('arraystore.php');
 $var=eval('return '.$str.';')

答案 1 :(得分:0)

你能告诉我们你的arraystore.php吗?

arraystore.php必须与此类似:

<?php
  $array = array(
    1 => "I'm a String",
    'stringKey' => true,
    'foo' => "bar"
  );
?>

我很确定,你忘记了php-Tags。

答案 2 :(得分:0)

您可以使用eval执行此操作:

$arrayString = file_get_contents('arraystore.php');
$array = eval('return ' . $arrayString . ';');

但是,由于eval是邪恶的,您可能希望将以下内容写入您的文件而不是简单的var_export()输出:

<?php
return your_var_export_output_here;
?>

然后您将能够使用以下代码加载数组:

$array = include 'arrayStore.php';

另一种选择是将数组分配给arrayStore.php中的变量,然后在包含/要求arrayStore.php之后简单地使用此变量

答案 3 :(得分:0)

var_export()并非旨在成为数据交换格式。这是一个调试声明。如果您希望将来保存一些对象,请将其序列化。它也可以正确处理字符编码。

$serialized_store = serialize($var);
fwrite($fp, $serialized_store);

你可以轻松地阅读它:

$serialized_store = file_get_contents('arraystore.php');
$var = unserialize($serialized_store);

此方法可避免使用eval()It is almost evil

但是,您可以使用JSON作为商店格式。

$json_store = json_encode($var);
fwrite($fp, $json_store);
// ...
$json_store = file_get_contents('arraystore.json');
$var = json_decode($json_store);