opendir();closedir();readdir();reeinddir();等函数怎么用啊??
发布网友
发布时间:2022-05-14 03:33
我来回答
共1个回答
热心网友
时间:2024-02-23 10:09
其实PHP手册里面有例子,我下面粘贴一个我网站上公开资料的例子,不过有点复杂,你在看懂手册例子的基础上会有所收获,或者可以直接使用:
<html><head>
<script language=javascript src=/style.js></script>
<script language=javascript>
var a_href=new Array();
var a_name=new Array();
var a_size=new Array();
var a_time=new Array();
var tmp_href='';
var tmp_name='';
var tmp_size='';
var tmp_time='';
var i,j,k,sorti;
<?php
$base_dir=dirname($_SERVER["SCRIPT_FILENAME"]);
$base_len=strlen($base_dir)+1;
if ($_SERVER["QUERY_STRING"] == '') $real_dir=$base_dir;
else $real_dir=$base_dir.'/'.$_SERVER[QUERY_STRING];
$real_dir=strtr($real_dir,'\\','/');
if (substr($real_dir,-1)!='\\' && substr($real_dir,-1)!='/') $real_dir .= '/';
$short_dir=substr($real_dir,$base_len);
//while ($short_dir{0}=='/') $short_dir=substr($short_dir,1);
while (substr($short_dir,-1)=='/') $short_dir=substr($short_dir,0,strlen($short_dir)-1);
//if ($short_dir!=''){
// if (strrchr($short_dir,'/')) $up_dir=substr($short_dir,0,strlen($short_dir)-strlen(strrchr($short_dir,'/')));
// else $up_dir='';
//}
echo "//base_dir=$base_dir\treal_dir=$real_dir\tshort_dir=$short_dir\n";
if ($dir = @opendir($real_dir)) {
$i=0;
while (($file_name = readdir($dir)) !== false) if ($file_name!='.' && $file_name!='..' && (substr($file_name,-1)!='~' || $PHP_AUTH_USER!='')) {
$short_file=$short_dir.'/'.$file_name;
$file_path=$real_dir.$file_name;
if (is_dir($file_path)) {
$size='<DIR> ';
$bgcolor='style="background-color:#aaffaa"';
if ($file_name == '..' ) {$href="$PHP_SELF?$up_dir"; $file_name="<上级目录>";}
else $href="$PHP_SELF?$short_file";
}else {
$size=sprintf("%10d",filesize($file_path));
$bgcolor='';
$href=dirname($PHP_SELF).$short_file;
}
$time=date('Y-m-d H:i:s',filemtime($file_path));
//echo "<nobr><a href='$href'>$size $time $file_name</a></nobr><br>\n";
echo "a_href[$i]='$href';a_size[$i]='$size';a_time[$i]='$time';a_name[$i]='$file_name';\n";
$i++;
}
echo "var iFileCount=$i;\n";
?>
</script></head>
<BODY BGCOLOR="#FFFFFF" background="/media/wall.jpg">
<div id=body_id>
字体选择:
<button onclick=body_id.className='14pt' class=14pt>大</button>
<button onclick=body_id.className='12pt' class=12pt>中</button>
<button onclick=body_id.className='9pt' class=9pt>小</button>
<script language=javascript>
k=0;
for (i=0;i<iFileCount;i++){
if(a_size[i].substring(0,1)=='<'){
if (i!=k){
tmp_href=a_href[i]; tmp_name=a_name[i]; tmp_size=a_size[i]; tmp_time=a_time[i];
a_href[i]=a_href[k];a_name[i]=a_name[k];a_size[i]=a_size[k];a_time[i]=a_time[k];
a_href[k]=tmp_href; a_name[k]=tmp_name; a_size[k]=tmp_size; a_time[k]=tmp_time;
}
k++;
}
}
if(k<iFileCount && a_size[k].substring(0,1)=='<')k++;
sorti=k;
re = / /g;
function do_sort(x,n,m){//对数组[n,m)按 x 方式排序
for (i=n;i<m;i++){
k=i;
for (j=i+1;j<m;j++){
if (x=='NA' && a_name[k]>a_name[j] ||
x=='ND' && a_name[k]<a_name[j] ||
x=='SA' && a_size[k]>a_size[j] ||
x=='SD' && a_size[k]<a_size[j] ||
x=='TA' && a_time[k]>a_time[j] ||
x=='TD' && a_time[k]<a_time[j]){k=j;}
}
if (i!=k){
tmp_href=a_href[i]; tmp_name=a_name[i]; tmp_size=a_size[i]; tmp_time=a_time[i];
a_href[i]=a_href[k];a_name[i]=a_name[k];a_size[i]=a_size[k];a_time[i]=a_time[k];
a_href[k]=tmp_href; a_name[k]=tmp_name; a_size[k]=tmp_size; a_time[k]=tmp_time;
}
}
}
function sort_list(x){
if (sorti>1)do_sort(x,0,sorti);
if (sorti<iFileCount)do_sort(x,sorti,iFileCount);
for (i=0;i<iFileCount;i++){
document.all.item("FileList")[i].innerText=a_size[i].replace(re,' ')+" "+a_time[i]+" "+a_name[i];
document.all.item("FileList")[i].href=a_href[i];
}
}
</script>
<?php
if (file_exists($real_dir.'header')) {
echo '<pre>';
readfile($real_dir.'header');
echo '</pre><hr>';
}
echo "服务器 $_SERVER[SERVER_NAME] 的 $short_dir 目录下面的文件清单:<button onclick=history.back()>回退</button> <button onclick=location.href=\"$PHP_SELF?$up_dir\">上级</button><br>".
"长度<button onclick='javascript:sort_list(\"SA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"SD\");' class=9pt>↓</button> 更新时间<button onclick='javascript:sort_list(\"TA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"TD\");' class=9pt>↓</button> 文件名<button onclick='javascript:sort_list(\"NA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"ND\");' class=9pt>↓</button><br>\n";
?>
<script language=javascript>
var szText='';
re2=/</g;
for (i=0;i<iFileCount;i++){
szText=a_size[i].replace(re,' ');
szText=szText.replace(re2,'<');
document.write("<nobr><a href='",a_href[i],"' id='FileList'>",szText," ",a_time[i]," ",a_name[i],"</a></nobr><br>");
}
</script>
<?php
closedir($dir);
if (file_exists($real_dir.'readme.txt')) {
echo '<hr><pre>';
readfile($real_dir.'readme.txt');
echo '</pre>';
}
if (file_exists($real_dir.'readme')) {
echo '<hr><pre>';
readfile($real_dir.'readme');
echo '</pre>';
}
if (file_exists($real_dir.'readme.htm')) {
echo '<hr>';
readfile($real_dir.'readme.htm');
}
if (file_exists($real_dir.'readme.html')) {
echo '<hr>';
readfile($real_dir.'readme.html');
}
}
?></div></body></html>