【问题标题】:PHP Warning "Warning: ob_start(): function '' not found or invalid function name" in Symfony 1?Symfony 1中的PHP警告“警告:ob_start():函数''未找到或无效的函数名称”?
【发布时间】:2012-05-09 23:46:01
【问题描述】:

我为什么会得到:

警告:ob_start(): function '' not found or invalid function name in /symfony-1.3\lib\config\sfApplicationConfiguration.class.php on line 155

这发生在 Symfony 1.x 项目中。我正在使用 Apache 2.2 和 PHP 5.4.1。

提到的行有:

ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : '');

【问题讨论】:

    标签: php symfony1


    【解决方案1】:

    尝试使用null 值而不是空字符串。

    ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : null);
    

    【讨论】:

    • 有趣的是,这个错误在 Symfony 框架中 :) 好吧,我想我可以在本地编辑文件:P
    • 此更改是否向后兼容?它仍然适用于 php 5.2 吗?
    • Hesky,我在 ob_start 的 PHP 手册中找不到此参数的任何更改。另一方面,PHP 5.2 已于 3 年前结束生命周期,因此有很多时间将所有代码库迁移到更新版本。任何仍在生产环境中运行 PHP 5.2 的人都必须很难手动移植安全补丁,因此手动向 ob_start 添加 NULL 选项应该很容易。
    • 这个错误在 symfony 1.4.20 版本中得到修复
    • 这解决了 Symfony 版本 1.0.11 中的问题 我必须更新 {PEAR directory}/symfony/symfony.php 中的代码 要找到您的 {PEAR directory},请运行 pear config-show | grep "PEAR directory"
    【解决方案2】:

    -ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : '');

    +ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : null);

    【讨论】:

      【解决方案3】:

      这已在 symfony 1.4.16 中修复

      symfony 1.4.16 changelog:

      • [...]
      • [33214] 修复了 CLI 上的 ob_start() 行为(关闭 #9970)
      • [33208] 修复 ob_start 用法(避免在 PHP 5.4 中出现警告,关闭 #9970)

      因此,只需确保至少使用该版本即可。

      最好使用最新/最后/最终发布的 symfony 1.x 版本,即 1.4.20。

      您可以通过the official Git mirror for symfony 1.x 获取它们。

      【讨论】:

        猜你喜欢
        • 2019-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-16
        相关资源
        最近更新 更多