包含需要重新加载

时间:2014-05-12 18:56:15

标签: php variables ubuntu include

我刚刚升级到Ubuntu 14.04和php5.5.9,并且遇到了一些旧代码的问题。

这可能很简单,但让我发疯了!

归结起来,问题在于:

  1. 用户提交表单
  2. POST值用于生成带有新定义变量的php文件
  3. 在代码的正下方,包含新写入的文件以恢复新变量 - 用于测试目的。
  4. 但只恢复了OLD变量。
  5. 刷新浏览器页面会获得新变量。
  6. 我无法弄清楚为什么php包含OLD文件,而不是新编写的文件。

    注意:文件由PHP正确编写。但是包含OLD文件,而不是新文件。 如果我点击浏览器刷新,则会显示新值。

    变量文件是用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
    

    结果:“不”

    (刷新浏览器)结果:“是”

    直接查看filename.php,会立即正确写入。只是用include没有正确调用。

    我做了什么:

    php.ini:
    allow_url_fopen = On 
    allow_url_include = On  
    restarted apache
    

    尝试了各种形式的clearstatcache 此代码适用于较早版本的php

    有什么明显的东西吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您是否安装并启用了apc?如果是这样,您还必须清除其缓存。调用apc_clear_cache()或告诉它重新编译更新的文件

apc_compile_file("/filepath/filename.php");