Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当浏览器呈现PHP文件时,是否加载以前在另一个文件中设置的变量?_Php_Variables_Post_Global Variables - Fatal编程技术网

当浏览器呈现PHP文件时,是否加载以前在另一个文件中设置的变量?

当浏览器呈现PHP文件时,是否加载以前在另一个文件中设置的变量?,php,variables,post,global-variables,Php,Variables,Post,Global Variables,常规查询:是否有一种方法可以从另一个PHP文件中读取变量,而无需运行该文件(因为变量是在另一个时间点设置的,使用第三个PHP文件),也无需使用数据库 特定实例:我创建了一个网页,我的老板希望每天都对其进行更改。他不想访问原始的HTML和CSS编码,因为任何错误都会让我头疼。所以我想我可能会创建一个小门户,允许他每天更改网页中的特定字符串数据,从而限制他对代码的访问 我构思的框架的工作原理如下: php是互联网上每个人都可以查看的页面。渲染时,我希望它请求先前保存在另一个文件中的$Categor

常规查询:是否有一种方法可以从另一个PHP文件中读取变量,而无需运行该文件(因为变量是在另一个时间点设置的,使用第三个PHP文件),也无需使用数据库

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

我构思的框架的工作原理如下:

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

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

考虑一下,然后从那里读取它。

您的站点应该有一个私人区域,您可以上传文件,这些文件不是站点的一部分,但您可以从PHP代码中读取它们。然后,您的上司只需上传一个包含适当值的新文件。

因此,我决定在每次运行脚本(从而更改变量)时,动态覆盖需要信息的原始文件,而不是将数据写入自己的文件中保存和存储

当点击edit.php上的submit按钮时,它会将信息传递给configuration.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>
//将要更改的文件内容读入变量
$indexContents=file_get_contents('index.php');
//使用srt_replace或preg_replace编辑内容
$indexContents=preg#u replace(“#(.*?\?#i)”、“.$title.”、$indexContents);
$indexContents=preg_replace(“#最佳-(.*)”、$url.“,$indexContents);
//将变量的内容写回相同的文件名,并覆盖它
文件内容('index.php',$indexContents);
呼应‘成功!’

谢谢@Amber。我也能做同样的事情吗?服务器上哪种CPU负载更快/更少?变量通常不会在请求之间保持不变。如果你在使用APC,理论上你可以,但这并不是一个好的方法来坚持,因为不能保证它能活多久。