0
我有這個PHP腳本從目錄中讀取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和HTML網頁,其中執行腳本和PHP文件將被放置在以下位置:http://www.mydomain.com/someFolder/
謝謝!
...你說,試過用絕對路徑運行它嗎? – Nightfirecat
改爲使用[directoryiterator](http://php.net/manual/en/class.directoryiterator.php),也許這不是允許某人閱讀文件系統的好主意。 –