【问题标题】:Zend Framework PHP -> realpath()Zend 框架 PHP -> realpath()
【发布时间】:2012-05-13 18:31:20
【问题描述】:

我正在尝试创建 Zend Framework 自定义提供程序,在这里:

    if($module == 'default'){
        $modelsPath = dirname(__FILE__) . '/../application/models';
        $filePath = realpath($modelsPath) . '/' . $name . '.php';
    } else
    if(!$module == ''){
        $modelsPath = dirname(__FILE__) . '/../application/' . $module . '/models';
        $filePath = realpath($modelsPath) . '/' . $name . '.php';
    } else {
        die('Please enter a module!');
    }

当我试图创建文件的路径时,当它的默认模块一切正常时,但对于 ex。无论真实路径返回什么错误,模块都是另一个词?!错误在哪里?

【问题讨论】:

  • 如果路径不存在,realpath 返回 false。
  • 当 realpath() 返回 false 时,很简单,您的路径(目录)不存在,或者您传递的路径错误。
  • 谢谢!我忘记了模块文件夹:]

标签: php zend-framework realpath


【解决方案1】:

尝试使用 APPLICATION_PATH 常量。

if($module == 'default'){
        $modelsPath = APPLICATION_PATH . '/models';
        $filePath = realpath($modelsPath) . '/' . $name . '.php';
    } else
    if(!$module == ''){
        $modelsPath = APPLICATION_PATH . '/' . $module . '/models';
        $filePath = realpath($modelsPath) . '/' . $name . '.php';
    } else {
        die('Please enter a module!');
    }

【讨论】:

    【解决方案2】:

    取出php manual

    realpath() 在失败时返回 FALSE,例如如果文件不存在。

    注意:

    正在运行的脚本必须对层次结构中的所有目录具有可执行权限,否则 realpath() 将返回 FALSE。

    所以问题很可能是文件夹权限或路径错误!

    【讨论】:

      【解决方案3】:

      通过简单的回显 $filePath 再次检查路径是否存在。如果这检查没问题,那么请确保“用户”(例如 apache、www-data)具有足够的权限。如果您不确定您的服务器在运行谁,您可以通过回显whoami 进行简单的调试

      【讨论】:

        猜你喜欢
        • 2011-03-20
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多