【发布时间】:2015-04-19 18:21:35
【问题描述】:
我在两台服务器上拥有相同的 PHP、PEAR 和 ZEND 引擎版本。在一台服务器上一切正常,在第二台服务器上我下载了一个空的 .xls 文件。如果我打开 error_reporting,那么在我的 .xls 文件中会出现以下错误:
致命错误:调用未定义的方法 System::tmpdir() in /var/www/kasa/packages/OLE/PPS/File.php 在第 50 行。
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');
}
为什么在一台服务器上一切正常,而在另一台服务器上却出现错误?
【问题讨论】:
-
愚蠢的问题,但你确定你没有超过一个系统类。此外,您应该将此方法指定为
public和static。 - 编辑对不起,这是一个凌乱的评论 -
另外,您确定 System 类的文件已包含/需要吗?我希望错误消息会有所不同,但如果没有其他工作,则值得检查。