函数适用于localhost但不适用于服务器

时间:2015-11-30 11:03:43

标签: php

我创建了一个函数来获取存储网站的主文件夹路径。在localhost它工作正常。

function get_path()
{

    $current=dirname(__FILE__) . '/';   
    $name=basename(__DIR__);
    $from=array($name);
    $to=array('');
    $result=str_replace($from,$to,$current);    

return trim($result, "/\\");
}

但在服务器中,它包含文件时显示错误。

 include(): Failed opening 'home3/home/public_html/dev/ship\model\main.php' for inclusion (include_path='.:/opt/php54/lib/php') 

该文件确实位于该目录中。但它不起作用。

3 个答案:

答案 0 :(得分:1)

你正在剥离第一个斜杠(第一个字符) - 而且你在路径中使用\而不是/。

答案 1 :(得分:1)

尝试以下

// Define directory separator
define('DS', DIRECTORY_SEPARATOR);

function get_path()
{

    $current = dirname(__FILE__) . DS;
    $name = basename(__DIR__);
    $from = array($name);
    $to = array('');
    $result = str_replace($from, $to, $current);

    return $result;
}

或者您可以使用:

// define directory separator
define('DS', DIRECTORY_SEPARATOR);

function get_path($withSlash = true)
{
    $path = realpath(dirname(__FILE__));
    if ($trailingSlash) {
        $path .= DS;
    }
    return $path;
}

答案 2 :(得分:0)

要创建路径,您应该使用PHP函数realpath来管理斜杠:http://php.net/realpath