5

我希望这里有人知道这个问题的答案。我写了一个脚本,使用

basename( __DIR__ )

然后使用 if 文件存在函数。

在我的服务器上这工作正常,但在其他服务器上它实际上返回单词_DIR_而不是文件路径。

这是否与 PHP 的版本有关,或者是否有其他设置使它不起作用?

最后有没有更好的方法来获取文件的路径?这是我正在使用的整行:

define('NIFTY_CONSTANT', trailingslashit (WP_PLUGIN_DIR . '/'. basename( __DIR__ ) ). '/lib/mdetect.php' );

(是的,我知道这是一个 WordPress 函数,但这不是一个 WordPress 问题,而是一个 PHP 问题)

4

2 回答 2

8

__DIR__在 PHP 5.3 中引入。仔细检查您的 PHP 版本。

参考: http: //php.net/manual/en/language.constants.predefined.php

于 2013-08-14T06:20:42.987 回答
4

如果__DIR__常量在 server 上不起作用A,而在 server 上起作用B,则 PHP 版本是一个问题(如 @Shivan 所述)。

您可以通过调用phpinfo()两台服务器来简单地测试它。

这是一个快速的解决方法:

// this should be at the top
if (!defined('__DIR__')) {
   define('__DIR__', dirname(__FILE__));
}
于 2013-08-14T06:28:27.010 回答