我有一个Wordpress插件,它将获取服务器上一个目录的名称,并重命名为设置/选项字段中设置的名称。我使用的代码是:
$base = basename(dirname(__FILE__));
$path = (isset($xgeneral['obf_plugin']))
?$xgeneral['obf_plugin']
:'original_directory';
if ($path != $base) {
$former = $base . DIRECTORY_SEPARATOR . 'mig_plugin.php';
$newer = $path . DIRECTORY_SEPARATOR . 'mig_plugin.php';
rename($former,$newer);
}
所以当插件第一次加载时会发生什么,它会检查obf_plugin
选项是否与相关目录相同;如果它们不同,则将其重命名。
但是,无论我尝试什么,我都会收到错误rename(migratex/mig_plugin.php,tango/mig_plugin.php): no such file or directory
(探戈只是我试图使用的愚蠢样本单词)我尝试使用此代码引用服务器上的绝对文件路径:
define("DS","/",true);
define('BASE_PATH',realpath(dirname(__FILE__)).DS,true);
但这并没有什么不同。
有rename()
函数无效的原因吗?它在Wordpress管理页面内运行。
谢谢!
编辑:进一步调查显示这可以在普通的PHP中使用,但在Wordpress中运行时不会。有关如何在Wordpress中启用rename()的任何想法吗?