我有这个PHP脚本,它从目录中读取mp3文件:
// 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,执行脚本的html页面和php文件将放在这个位置:http://www.mydomain.com/someFolder/
谢谢!
答案 0 :(得分:0)
Web根始终只是/。您永远不需要主机名或协议部分,root只能是服务器的根,而不是某个文件夹或文件。
如果你需要一些路径,比如/ testthesis / - 有方法,但它与web root没什么共同之处。
如果您需要webroot的文件系统目录 - 它位于$ _SERVER ['DOCUMENT_ROOT']变量中。