PHP PEAR调用未定义的方法System :: tmpdir()

时间:2015-04-17 12:54:18

标签: php pear

我在两台服务器上有相同的PHP,PEAR和ZEND引擎版本。在一台服务器上一切正常,在第二台服务器上我下载了一个空的.xls文件。如果我打开error_reporting,那么在我的.xls文件中出现此错误:

  

致命错误:调用未定义的方法System :: tmpdir()   第50行的/var/www/kasa/packages/OLE/PPS/File.php。

File.php中的第50行显示:

$this->_tmp_dir = System::tmpdir();

在类System中,我有方法tmpdir()

function tmpdir() {
        if (OS_WINDOWS) {
            if ($var = isset($_ENV['TMP']) ? $_ENV['TMP'] : getenv('TMP')) {
                return $var;
            }
            if ($var = isset($_ENV['TEMP']) ? $_ENV['TEMP'] : getenv('TEMP')) {
                return $var;
            }
            if ($var = isset($_ENV['USERPROFILE']) ? $_ENV['USERPROFILE'] : getenv('USERPROFILE')) {
                return $var;
            }
            if ($var = isset($_ENV['windir']) ? $_ENV['windir'] : getenv('windir')) {
                return $var;
            }
            return getenv('SystemRoot') . '\temp';
        }
        if ($var = isset($_ENV['TMPDIR']) ? $_ENV['TMPDIR'] : getenv('TMPDIR')) {
            return $var;
        }
        return realpath('/tmp');
    }

为什么在一台服务器上一切正常,我有错误?

1 个答案:

答案 0 :(得分:0)

你可能有多个System类,而且每个服务器上的include_paths都不同 - 一个是先检测到PEAR的System.php,一切正常,另一个没有

你应该比较这些,甚至只是做" echo get_include_path();"  看看你发现了什么差异。