PHP 远程文件管理,可以给表格排序,遍历目录,时间排序


Posted in PHP onAugust 07, 2009

PHP 远程文件管理,可以给表格排序,遍历目录,时间排序

<?php 
$rootdir="./"; 
$spacenum=0; 
$filenum=0; 
$allfilesize=0; 
echo "<h1>文件管理调试测试</h1>"; 
echo "<a href=''>重置</a>"; 
readLogDir($rootdir); 
echo "<hr>"; 
echo "Total files count: $filenum.<br>"; 
echo "Total disk space used: $allfilesize<br>"; 
$freespace=diskfreespace("/"); 
echo "residue disk space: $freespace<br>"; 
function readLogDir($subdir){ 
global $rootdir,$spacenum,$filenum,$allfilesize; 
@chdir($subdir) or die ("error:could not change to this directory!"); 
$dirobject=dir($subdir); 
echo "<table width=600 border=0 align='center' id='clearStart'><tr id='ignore' ><td width=40% onclick='JM_PowerList(0)'><b>文件名</b></a></td><td width=20% onclick='JM_PowerList(1)'><b>文件大小</b></td><td width=40% onclick='JM_PowerList(2)'><b>创建时间</b></td></tr>"; 
$i=0; 
while ($file=$dirobject->read()){ 
if($file=="." || $file==".."){ 
continue; 
} 
$i=$i+1; 
echo "<tr bgcolor='#e0e0e0'><td>".$i."<a href=.php?file_dir=".$rootdir."&file_name=".$file." target=_blank>"; 
echo $file."</a></td><td>". number_format((filesize($file)/1024),2,'.','')."KB</td><td>". date("Y-m-d H:i:s", filemtime($file)). "</td></tr>"; 
$allfilesize+=filesize($file); 
$filenum++; 
} 
echo "</table>"; 
return; 
} 
?> 
<script src="table_sort.js"></script> 
需要的JS文件 
/** 
* table排序 
* anthor liueh 
*/ 
function JM_PowerList(colNum) 
{ 
headEventObject=event.srcElement;//取得引发事件的对象 
while(headEventObject.tagName!="TR") //不是tr行,则从底下的td冒泡上来寻找到相应行 
{ 
headEventObject=headEventObject.parentElement; 
} 
for (i=0;i<headEventObject.children.length;i++) 
{ 
if (headEventObject.children[i]!=event.srcElement)//找到事件发生的td单元格 
{ 
headEventObject.children[i].className='listTableHead';//把点击的列的className属性设为listTableHead 
} 
} 
var tableRows=0; 
trObject=clearStart.children[0].children; //取得表格中行对象, 原来这里叫DataTable, 可能是你写错了吧?? 
for (i=0;i<trObject.length;i++) 
{ 
Object=clearStart.children[0].children[i];//取得每行的对象 
tableRows=(trObject[i].id=='ignore')?tableRows:tableRows+1;//如果不是忽略行,则行数加一 
} 
var trinnerHTML=new Array(tableRows); 
var tdinnerHTML=new Array(tableRows); 
var tdNumber=new Array(tableRows) 
var i0=0 
var i1=0 
for (i=0;i<trObject.length;i++) 
{ 
if (trObject[i].id!='ignore') 
{ 
trinnerHTML[i0]=trObject[i].innerHTML;//把行放在数组里 
tdinnerHTML[i0]=trObject[i].children[colNum].innerHTML;//把要排序的行中td的内容放数组里 
tdNumber[i0]=i;//行号 
i0++;//加一,下个循环用 
} 
} 
sourceHTML=clearStart.children[0].outerHTML;//取得表格中所有tr的html代码 
//对所有td中的字符串进行排序, 算不算冒泡排序??? 
for (bi=0;bi<tableRows;bi++) 
{ 
for (i=0;i<tableRows;i++) 
{ 
if(tdinnerHTML[i]>tdinnerHTML[i+1]) 
{ 
t_s=tdNumber[i+1]; 
t_b=tdNumber[i]; 
tdNumber[i+1]=t_b; 
tdNumber[i]=t_s; 
temp_small=tdinnerHTML[i+1]; 
temp_big=tdinnerHTML[i]; 
tdinnerHTML[i+1]=temp_big; 
tdinnerHTML[i]=temp_small; 
} 
} 
} 
var showshow=''; 
var numshow=''; 
for (i=0;i<tableRows;i++) 
{ 
showshow=showshow+tdinnerHTML[i]+'\n';//把排序好的td的内容存在showshow字串里 
numshow=numshow+tdNumber[i]+'|'; //把排序好的相应的行号也存在numshow中 
} 
sourceHTML_head=sourceHTML.split("<TBODY>");//从<TBODY>截断,我试了,前头串为空 
numshow=numshow.split("|"); 
var trRebuildHTML=''; 
if (event.srcElement.className=='listHeadClicked') 
{//已点击的列, 则逆排 
for (i=0;i<tableRows;i++) 
{ 
trRebuildHTML=trRebuildHTML+trObject[numshow[tableRows-1-i]].outerHTML;//取出排序好的tr的内容连接起来 
} 
event.srcElement.className='listHeadClicked0'; 
} 
else 
{//默认顺排,新点击顺排 
for (i=0;i<tableRows;i++) 
{ 
trRebuildHTML=trRebuildHTML+trObject[numshow[i]].outerHTML; 
} 
event.srcElement.className='listHeadClicked'; 
} 
//取得排序后的tr集合结果字符串 
var DataRebuildTable=''; 
//把旧的表格头和新的tr排序好的元素连接起来, (修改了一下) 
DataRebuildTable = "<table border=0 width=600 id='clearStart' align='center'><TBODY>" + trObject[0].outerHTML + trRebuildHTML + "</TBODY>" + 
"</table>"; 
clearStart.outerHTML=DataRebuildTable;//表格用新串重新写一次 
}
PHP 相关文章推荐
Discuz 模板语句分析及知识技巧
Aug 21 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
PHP实现的简单缓存类
Jul 29 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PDO::prepare讲解
Jan 29 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 PHP
PHP基于array_unique实现二维数组去重
Jul 14 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 PHP
PHP 翻页 实例代码
Aug 07 #PHP
php Sql Server连接失败问题及解决办法
Aug 07 #PHP
php_xmlhttp 乱码问题解决方法
Aug 07 #PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 #PHP
php 全局变量范围分析
Aug 07 #PHP
PHP 多维数组排序实现代码
Aug 05 #PHP
PHP 简单数组排序实现代码
Aug 05 #PHP
You might like
加强版phplib的DB类
2008/03/31 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
js跳转页面方法总结
2014/01/29 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
微信小程序实现音乐播放器
2019/11/20 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
关于赌博的检讨书
2014/01/24 职场文书
毕业生自荐书
2014/02/03 职场文书
朋友离别感言
2015/08/04 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
python实现腾讯滑块验证码识别
2021/04/27 Python
python调试工具Birdseye的使用教程
2021/05/25 Python
MySQL 时间类型的选择
2021/06/05 MySQL