如何使用PHP编辑另一个PHP脚本中的变量?

时间:2014-08-28 22:10:54

标签: php variables edit

我目前正在制作基本的PHP应用/页面,但是,我遇到了一个问题。我需要制作一个脚本,它将在另一个脚本中编辑变量并将其设置为某种形式。

例如,One脚本会说:

$test = "username";

另一个脚本会将该变量设置为其他内容。

因此,一旦加载了PHP脚本(index.php)页面,PHP脚本就会将第一个脚本(variables.php)更改为:

$test = "username20";

但是,我不知道该怎么做。有什么方法可以做到吗?

修改

我需要一个像这样的基本自动编辑器,因为该文件是一个配置文件(所以基本上,我需要内部的文本永久存在,这意味着"会话"将不起作用。)。

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

更好地使用会话变量。它们在加载会话时在所有PHP脚本中都有效。

http://php.net/manual/en/book.session.php

答案 1 :(得分:2)

您应该使用fopen打开文件,使用fread读取文件以搜索所需变量 然后用fwrite写。

$fn = "variables.php"; 
$file = fopen($fn, "w+"); 
$size = filesize($fn); 
$text = fread($file, $size); 
fwrite($file, 'text'); 
fclose($file); 

答案 2 :(得分:2)

我认为你有几种选择。正如您所说,这将是一些配置文件,因此您很可能会有几个不同的配置选项。虽然在你的例子中你有分离的值imho,但更有意义的是有一些集合。你配置文件可能看起来如下:

<?php

$config = array(
    'dbname' => 'my_awesome_db',
    'dbhost' => 'localhost',
    'dbuser' => 'notroot',
    'dbpass' => 'secret',
);

使用PHP,您可以更改上面的数组并将其写回文件:

<?php

require __DIR__ . '/config.php';

$config['dbhost'] = '10.1.0.1';

file_put_contents(__DIR__ . '/config.php', '<?php $config = ' . var_export($config, true) . ';');

另一种方法是使用JSON格式:

{
    "foo": "bar",
    "baz":"qux"
}

使用PHP,您可以更改上述JSON并将其写回文件:

<?php

$config = json_decode(file_get_contents(__DIR__ . '/config.php'), true);

$config['dbhost'] = '10.1.0.1';

file_put_contents(__DIR__ . '/config.php', json_encode($config, JSON_PRETTY_PRINT));

以上只是两个选项。您也可以写入ini文件,数据库或任何您喜欢的格式。

但有些注意事项:

  • 如果文件包含敏感信息,则必须确保将其放在文档根目录之外,以防止意外泄露(例如服务器配置错误或人为错误)
  • 如果并发性成为问题,您可能需要查看locking mechanism或使用数据库让它为您处理它
  • 正常规则适用于任何此类任何形式的用户输入以任何方式获得或已与之接触
  • 虽然拥有这样的配置文件没有任何内在错误。它不是银弹,只应在有意义的时候使用。对于某些事情,根据用例,您最好使用数据库。

相关读物:

演示:

答案 3 :(得分:-2)

这取决于你想要什么。如果你正在创建某种&#34;控制面板&#34;只为你自己;你想要硬编码密码并使用会话/ cookie来保持&#34;登录。&#34;

如果您希望多人使用它,即使是成员系统,您也需要一个数据库。

有基于文本文件的数据库,但我认为较小的数据库会更好。

更新:

你真的可以这样做,嗯,你可以,但这将是一个非常糟糕的做法。

如果您想要编辑的内容不是敏感信息,您可以编写/读取/编辑常规文件(如info.txt或info.dat)

另一次更新 如果你坚持写一个.php变量,你在技术上可以......

使用文件函数访问(ex:data.php)文件,你可以写字:     $ user_password =&#34; blah&#34 ;;

然后在主文件中包含data.php,并定义$ user_password。如果要编辑它,请使用文件函数更新data.php文件。