我可以将数据存储在PHP文件中吗?

时间:2011-01-28 15:41:33

标签: php storage

有没有办法将表单发布的数据直接存储到PHP文件中,而不是以文本或二进制格式存储?

8 个答案:

答案 0 :(得分:2)

当然,您可以将其保存到您想要的任何类型的文件中。虽然把它放在一个php文件中会是一个主要的安全风险,因为有人可以上传一个做坏事的脚本,然后像你网站上的任何其他页面一样启动它。

答案 1 :(得分:2)

为什么要通过TXT文件将数据存储在PHP文件中?实际上,如果您正在将数据写入文件系统上的文件,那么扩展将会是什么并不重要。 (除非您写入PHP文件并在浏览器中访问它,否则它将尝试执行文件中的任何数据,这可能是一个很大的安全问题。)

我的建议是在文本文件中写入每行的值。然后,当您想要读取数据时,使用PHP将该文件读回数组。

答案 2 :(得分:1)

这在技术上是可行的,但没有充分的理由这样做。你想解决什么问题?

您可以使用fopen('file.php','a')打开要附加的PHP文件,并使用fwrite向其写入内容。要阅读它,请阅读整个文件,跳过PHP部分并阅读您刚刚编写的数据。

答案 3 :(得分:1)

如果您不想存储数据(只能将其从脚本传递到脚本),您可以尝试将表单存储为会话变量:

session_start();
$_SESSION['myData'] = $myData;
然后,共享会话的所有其他页面只需调用$_SESSION['myData']即可访问数据。

答案 4 :(得分:1)

是的,有可能。如果您想这样做,请查看var_export等函数。

然而,就像其他人所说的那样,对于大多数意图和目的而言,这是一个坏主意™。将内容写入可执行文件意味着您必须特别注意用户输入,例如,因为他们可能会利用它来运行自己的代码。

因此,您应尽可能使用数据库或某种不可执行的平面文件来存储数据。

此外,如果您为了“安全”而尝试这样做,将保护代码放在文件中,可以通过将文件作为文本文件读取并轻松跳过安全措施来轻松实现 - 请记住,PHP代码是纯文本,不必执行即可读取。如果您选择将其加密作为安全措施,您也可以将加密数据存储在数据库中,从而使您的观点毫无意义。

如果您发现自己无法访问数据库系统,则应考虑使用SQLite - 数据库,该数据库存储在文件中,因此不需要安装任何内容,只需要PHP SQLite扩展,它是标准的部分PHP。

答案 5 :(得分:0)

不在PHP文件本身。但是你可以使用这个脚本存储一些东西:

file_put_contents(dirname(__FILE__).'/data.txt', var_export($_REQUEST, 1), FILE_APPEND);

如果你真的想直接将它存储在PHP文件中,只需更改脚本

file_put_contents(__FILE__, '?>'.var_export($_REQUEST, 1), FILE_APPEND);

- )

答案 6 :(得分:0)

可能有更好的方法来存储数据,但如果你真的想要这样做可以这样做:

file_put_contents($storage_file, '<?php return ' . var_export($data) . ';');

这样,所有数据都将格式良好并且可以很好地转义。

然后您可以使用以下代码检索数据:

$data = include $storage_file;

答案 7 :(得分:0)