Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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_Ubuntu_Include - Fatal编程技术网

Php 包含需要重新加载

Php 包含需要重新加载,php,variables,ubuntu,include,Php,Variables,Ubuntu,Include,我刚升级到Ubuntu14.04和php5.5.9,一些旧代码有问题 这可能很简单,但却让我发疯 简而言之,问题是: 用户提交表单 POST值用于生成带有新定义变量的php文件 在代码的正下方,包含了新编写的文件,用于恢复新变量—用于测试目的。 但只有旧的变量被恢复。 刷新浏览器页面将获得新变量。 我不明白为什么php包含旧文件,而不是新编写的文件 注意:该文件由php正确编写。但包含的是旧文件,而不是新文件。 如果单击“浏览器刷新”,将显示新值 变量文件是用php标记编写的,因为我很久以前就编

我刚升级到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");