将PHP变量保存到文本文件中

时间:2010-06-08 07:29:26

标签: php file

我想知道如何将PHP变量保存到txt文件然后 再次检索它们。

示例:

在提交了写入的内容后,有一个输入框 输入框将保存到文本文件中。后来结果需要 作为变量被带回来。所以我要说变量是$ text I 需要将其保存到文本文件中并能够将其检索回来 试。

7 个答案:

答案 0 :(得分:41)

这应该做你想要的,但没有更多的背景,我无法确定。

将$ text写入文件:

$text = "Anything";
$var_str = var_export($text, true);
$var = "<?php\n\n\$text = $var_str;\n\n?>";
file_put_contents('filename.php', $var);

再次检索:

include 'filename.php';
echo $text;

答案 1 :(得分:37)

就个人而言,我会使用file_put_contents和file_get_contents(这些是fopen,fput等的包装器)。

另外,如果您要编写任何结构化数据,例如数组,我建议您序列化和反序列化文件内容。

$file = '/tmp/file';
$content = serialize($my_variable);
file_put_contents($file, $content);
$content = unserialize(file_get_contents($file));

答案 2 :(得分:4)

(抱歉,我还不能评论,否则我会)

要添加到Christian的答案,您可以考虑使用json_encodejson_decode代替serializeunserialize来保证您的安全。请参阅PHP手册页中的警告:

  

警告

     

不要将不受信任的用户输入传递给unserialize()。由于对象实例化和自动加载,反序列化可能导致代码被加载和执行,恶意用户可能能够利用它。如果需要将序列化数据传递给用户,请使用安全的标准数据交换格式,例如JSON(通过json_decode()和json_encode())。

因此,您的最终解决方案可能包含以下内容:

$file = '/tmp/file';
$content = json_encode($my_variable);
file_put_contents($file, $content);
$content = json_decode(file_get_contents($file), TRUE);

答案 3 :(得分:1)

for_example ,您有anyFile.php,并且写有$any_variable='hi Frank';

将该变量更改为hi Jack,请使用以下代码:

<?php
$content = file_get_contents('anyFile.php'); 

$new_content = preg_replace('/\$any_variable=\"(.*?)\";/', '$any_variable="hi Jack";', $content);

file_put_contents('anyFile.php', $new_content);
?>

答案 4 :(得分:0)

使用fopenfwritefread的组合。 PHP.net拥有优秀的文档和每个人的示例

http://us2.php.net/manual/en/function.fopen.php
http://us2.php.net/manual/en/function.fwrite.php
http://us2.php.net/manual/en/function.fread.php

答案 5 :(得分:0)

对变量使用serialize(),然后将字符串保存到文件中。之后你将能够从文件中读取连续的var并重建原始的var(它是一个字符串,一个数组或一个对象)

答案 6 :(得分:0)

好的,因此我需要一个解决方案,我从这个问题的答案中大量借用了一个图书馆:https://github.com/rahuldottech/varDx(根据MIT许可获得许可)。

它使用serialize()unserialize()并将数据写入文件。它可以在同一文件中读写多个对象/变量/任何东西。

用法:

<?php
require 'varDx.php';
$dx = new \varDx\cDX; //create an object
$dx->def('file.dat'); //define data file
$val1 = "this is a string";
$dx->write('data1', $val1); //writes key to file
echo $dx->read('data1'); //returns key value from file

有关更多信息,请参见github页面。它具有读取,写入,检查,修改和删除数据的功能。