升级到PHP 5.5后,网站无法正常工作

时间:2014-06-03 20:40:44

标签: php php-5.5

由于我的提供商,我不得不在我的服务器上将PHP从5.3升级到5.5。我的网站停止了工作。我现在回到PHP 5.3。本地我正在使用MAMP和PHP 5.5进行测试并遇到同样的问题。

情况:

  1. 我有一个执行include_once("php/functions.php")的index.php文件。它的工作原理是它返回true。

  2. 关于index.php文件的结尾我有一个php部分如下:

    <?php
        echo("<p>(1) before function call</p>");
        echo outputFooter();
        echo("<p>(4) after function call</p>");
    ?>
    
  3. php / function.php文件中的PHP函数如下:

    function outputFooter() {
       echo("<p>(2) In the function</p>");
       return("<p>(3) In the outputFooter function</p>");
    }
    
  4. 输出为:

      

    (1)在函数调用之前

  5. 显然PHP函数根本没有被调用! PHP 5.5中的任何想法导致了这个问题?

3 个答案:

答案 0 :(得分:2)

将以下内容放在脚本的顶部:

error_reporting(E_ALL);
ini_set('display_errors', '1');

我的猜测是,在包含的文件中加载时会发生语法错误或致命的运行时错误。

答案 1 :(得分:1)

@ jtmanteo:非常感谢你的建议。它帮助我找到了问题的原因。它是在我试图打开的php文件中。我有一个过程调用传递对它的引用,如&amp; $ some_var。看起来好像它适用于PHP 5.3但不适用于PHP 5.5!所以include_once确实找到了php文件,但在阅读时它崩溃了。根据您的建议,我可以得到相应的错误消息。再次感谢!!

问题解决了!

答案 2 :(得分:0)

如果使用命令行,则可以运行:

php -l *

跨托管文件的目录。这将使用内置的PHP引擎来为文件提示任何会导致白屏的语法错误,尽管它不会发现运行时错误。您也可以运行:

php *

如果您的文件是自包含的,但如果您的脚本在运行时被框架调用,则可能会出现问题。