0

一般查询:有没有办法从另一个 PHP 文件中读取一个变量,而不运行该文件(因为该变量是在另一个时间点设置的,使用第三个 PHP 文件),并且不使用数据库?

具体实例:我创建了一个我的老板每天都想改变的网页。他不想访问原始的 HTML 和 CSS 编码,因为任何错误都会让我头疼。所以我想我可能会创建一个小型门户,允许他每天更改网页中的特定字符串数据,从而限制他对代码的访问。

我构想的框架是这样工作的:

  • index.php 是互联网上每个人都可以查看的页面。当它被渲染时,我希望它请求之前保存在另一个文件中的 $Category 变量。
  • edit.php 是一个显示带有两个输入框的简单表单的网页:类别和密码。单击提交按钮时,它将数据发布到下面的文件中。
  • configuration.php 是 edit.php 将表单信息传递给的文件。提交表单信息后,它会检查输入密码的 crypt() 版本是否匹配,然后将类别信息存储在名为 $Category 的变量中。

现在,我需要一种方法让 index.php 读取先前保存在 configuration.php 文件中的 $Category 值,无需运行它,也无需使用数据库(因为我无权访问数据库)。我不认为我可以使用会话值,因为这个值对于所有用户和所有会话应该是相同的,直到我的老板再次更改它。有什么方法可以实现这一点,还是我应该使用不同的方法?

4

3 回答 3

1

考虑只将数据写入文件,然后从那里读取。

于 2012-08-11T22:30:31.910 回答
0

您的站点应该有一个私有区域,您可以在其中上传文件,它们不作为站点的一部分提供,但您可以从您的 PHP 代码中读取它们。然后你的老板可以简单地上传一个包含适当值的新文件。

于 2012-08-11T22:32:47.480 回答
0

因此,我决定在运行脚本时(因此变量发生更改)动态覆盖需要信息的原始文件,而不是将数据写入它自己的文件来拥有和存储。

当点击edit.php 上的提交按钮时,它会将信息传递给configuration.php,它会在运行完成时重写index.php。下面是我使用的代码的一部分,以防有人想要实现类似的东西,而不必将数据写入完全独立的文件。

// Read the contents of the file you want to change, into a variable
$indexContents = file_get_contents('index.php');

// Edit the contents with srt_replace or preg_replace
$indexContents = preg_replace('#<h2>(.*?)\?</h2>#i', '<h2>'.$title.'?</h2>', $indexContents);
$indexContents = preg_replace('#best-(.*?)"#', $url.'"', $indexContents);

// Write the contents of the variable back to the same file name, overwriting it
file_put_contents('index.php', $indexContents);

echo '<h1>Success!</h1>';</code>
于 2012-08-13T22:19:33.867 回答