迭代后退文件夹以找到wp-config.php

时间:2013-04-22 08:06:54

标签: php directory constants

我有一个在Wordpress范围之外执行的php脚本,但我需要使用wp-config.php中定义的Wordpress常量。我想让脚本平台独立。

我的脚本在子文件夹(主题)中,我正在尝试迭代回来找到wp-config。我的主题文件应该能够放在不同的deps(子文件夹)中,最好!

我不能在我的while循环中获得声明,但是我不能理解为什么!我正在尝试设置条件,以便它将在系统根目录中停止,如(c :)

function getWPConfig() {
    $dir = dirname(__FILE__);
    $dir = addslashes($dir);    
    while ($pos = strpos($dir, "\\") !== false) { //&& strpos($dir, (string)DIRECTORY_SEPARATOR) > 1
        $wpConfig = $dir . DIRECTORY_SEPARATOR .'wp-config.php';
        if (file_exists($wpConfig)) {
            echo 'Found wp-config: '. $wpConfig;
            return $wpConfig;
        } else {
            'Could not find: '. $dir . DIRECTORY_SEPARATOR .'wp-config.php';
        }
        $tempDir = explode(DIRECTORY_SEPARATOR, $dir);
        $end = end($tempDir);
        $dir = str_replace($end, '', $tempDir);
    }
    return;
}

1 个答案:

答案 0 :(得分:1)

在@Pekka的建议之后我写了这个函数! :-)

function getWPConfig() {
    $dir = dirname(__FILE__);
    $lastDir = __FILE__;
    while (strlen($dir) < strlen($lastDir)) {
        $wpConfig = $dir . DIRECTORY_SEPARATOR .'wp-config.php';
        if (file_exists($wpConfig)) {   
            return $wpConfig;
        }
        $lastDir = $dir;
        $dir = dirname($dir);
    }
    return;
}