Php 包含需要重新加载
我刚升级到Ubuntu14.04和php5.5.9,一些旧代码有问题 这可能很简单,但却让我发疯 简而言之,问题是: 用户提交表单 POST值用于生成带有新定义变量的php文件 在代码的正下方,包含了新编写的文件,用于恢复新变量—用于测试目的。 但只有旧的变量被恢复。 刷新浏览器页面将获得新变量。 我不明白为什么php包含旧文件,而不是新编写的文件 注意:该文件由php正确编写。但包含的是旧文件,而不是新文件。 如果单击“浏览器刷新”,将显示新值 变量文件是用php标记编写的,因为我很久以前就编写了它。不确定我是否需要改变它Php 包含需要重新加载,php,variables,ubuntu,include,Php,Variables,Ubuntu,Include,我刚升级到Ubuntu14.04和php5.5.9,一些旧代码有问题 这可能很简单,但却让我发疯 简而言之,问题是: 用户提交表单 POST值用于生成带有新定义变量的php文件 在代码的正下方,包含了新编写的文件,用于恢复新变量—用于测试目的。 但只有旧的变量被恢复。 刷新浏览器页面将获得新变量。 我不明白为什么php包含旧文件,而不是新编写的文件 注意:该文件由php正确编写。但包含的是旧文件,而不是新文件。 如果单击“浏览器刷新”,将显示新值 变量文件是用php标记编写的,因为我很久以前就编
filename.php
<?php
$yesorno = "no";
?>
samplefile.php
include "/filepath/filename.php";
$opencar = '<';
$closecar = '>';
$fh = fopen("/filepath/filename.php", 'w') or die("can't open file");
fwrite($fh, $opencar."?php\n");
fwrite($fh, "\$yesorno = \"yes\";\n");
fwrite($fh, "?".$closecar."\n");
fclose($fh);
include "/filepath/filename.php";
echo "result: $yesorno";
execute samplefile.php
尝试了各种形式的缓存
这段代码在旧版本的php上运行得非常好
有什么明显的吗?任何帮助都将不胜感激 是否已安装并启用apc?如果是这样,您也必须清除它的缓存。调用apc_clear_cache或告诉它重新编译更新的文件
apc_compile_file("/filepath/filename.php");
好的,我明白了!我对opcache使用了opcache\u invalidate。你让我走对了路,谢谢!不客气。顺便说一句,这是一种存储变量和设置的奇怪方式。它很容易出现争用情况,除非您锁定文件,以便一次只有一个进程可以读/写它。
apc_compile_file("/filepath/filename.php");