0

我有这个从目录中读取 mp3 文件的 php 脚本:

// Set your return content type
header('Content-type: text/xml');

//directory to read
$dir = ($_REQUEST['dir']);
$sub_dirs = isBoolean(($_REQUEST['sub_dirs']));

if(file_exists($dir)==false){
    //echo $_SERVER['DOCUMENT_ROOT'];
    //echo "current working directory is -> ". getcwd();
    echo 'Directory \'', $dir, '\' not found!';
}else{
    $temp = getFileList($dir, $sub_dirs);
    echo json_encode($temp);
}

function isBoolean($value) {
   if ($value && strtolower($value) !== "false") {
      return true;
   } else {
      return false;
   }
}

function getFileList($dir, $recurse){ 

    $retval = array(); // array to hold return value 
    if(substr($dir, -1) != "/") // add trailing slash if missing 
    $dir .= "/"; // open pointer to directory and read list of files 
    $d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading"); 

    while(false !== ($entry = $d->read())) { // skip hidden files
        if($entry[0] == "." || $entry[0] == "..") continue; 

        if(is_dir("$dir$entry")) { 
            if($recurse && is_readable("$dir$entry/")) { 
                $retval = array_merge($retval, getFileList("$dir$entry/", true)); 
            }
        }else if(is_readable("$dir$entry")) {
            $path_info = pathinfo("$dir$entry");
            if(strtolower($path_info['extension'])=='mp3'){
                $retval[] = array( 
                    "path" => "$dir$entry", 
                    "type" => $path_info['extension'],
                    "size" => filesize("$dir$entry"), 
                    "lastmod" => filemtime("$dir$entry") 
                ); 
            }
        } 
    } 
    $d->close();
    return $retval; 
}

该文件与执行脚本的 html 页面位于同一目录中。例如,我通过了相对路径'audio/mp3' or '../audio/mp3',一切正常。

是否可以使用绝对路径制作这个读取目录?

例如,如果我通过这个:http://www.mydomain.com/someFolder/audio/mp3,执行脚本和 php 文件的 html 页面将被放置在这个位置:http://www.mydomain .com/someFolder/

谢谢!

4

1 回答 1

0

Web 根目录始终只是 /。您永远不需要主机名或协议部分,root 只能是服务器的根,而不是某个文件夹或文件。

如果您需要一些路径,例如 /testthesis/ - 有一些方法,但它与 web root 没有什么共同之处。

如果您需要 webroot 的文件系统目录 - 它位于 $_SERVER['DOCUMENT_ROOT'] 变量中。

于 2013-09-28T09:58:59.807 回答