点击表格第一行,头部就可以排序了,这个列子是当前目录的

<?php
$rootdir="./";
$spacenum=0;
$filenum=0;
$allfilesize=0;
echo "<h1>文件管理corange.cn调试测试</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% οnclick='JM_PowerList(0)'><b>文件名</b></a></td><td width=20% οnclick='JM_PowerList(1)'><b>文件大小</b></td><td width=40% οnclick='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;//表格用新串重新写一次

}
本文首发于我的主站http://www.corange.cn/archives/2009/06/3243.html

转载于:https://www.cnblogs.com/zerogo/archive/2009/07/23/1529078.html

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

  1. 算法导论-排序(四)计数排序(线性时间排序)

    目录 1.计数排序介绍 2.流程图 3.代码实现 4.性能分析 5.参考资料 内容 1.计数排序介绍 什么是计数排序? 计数排序是一种特殊的排序算法,之前介绍的排序算法需要对数进行两两比较,效率下界为 ...

  2. php实现按时间排序_按时间排序的问题?

    表中某时间字段有一些格式: November 11, 2016 31 Oct 2016 2016-01-11 07 Nov 2016 能否按时间排序? 回复内容: 表中某时间字段有一些格式: Nove ...

  3. mysql从大到小排序_sql语句时间排序 sql语句按照时间排序

    sql语句时间排序 sql语句按照时间排序以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL按时间排序 select ...

  4. php时间正序排序,列表的时间排序,应该正序还是倒序?

    列表时间排序到底应该正序还是倒序?哪种体验会更好?各大知名产品都是如何做的? 背景 前阵子正好做到了一个类似 " 申请通知 " 的功能,因为涉及到列表,所以要考虑列表的排序规则,那 ...

  5. c语言验证完成排序算法的时间,排序算法的时间复杂度和空间复杂度

    常用的内部排序方法有:交换排序(冒泡排序.快速排序).选择排序(简单选择排序.堆排序).插入排序(直接插入排序.希尔排序).归并排序.基数排序(一关键字.多关键字). 一.冒泡排序: 1.基本思想: ...

  6. Java中对ArrayList<String>中的时间排序

    ####### 此文仅仅是自己日常代码问题的一个记录而已,仅仅写给自己. 背景描述 由于项目需要,需要对时间进行降序排序,找了很多种方法,最后发现Collections.sort 这种方法竟然是非常好 ...

  7. antd table 时间搜索_antd table按表格里的日期去排序操作

    表格内容 根据票据日期升序(这里是已经排序后的效果) 上代码 代码中data的内容如下 根据paper_date排序,因为目前这种格式不支持比较,需要先转换成时间戳 new Date(aTimeStr ...

  8. php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作

    我们在上网中都能看到很多能够排序的,如大小.时间.价格等 现在我们也试一下排序功能: 排序的函数代码:里面含有点击之后排序--还原,和排升序和降序. function sortAge(){ //对年龄 ...

  9. php liger 表格排序,LigerUI之grid表格点击表头标题排序实现

    LigerUI之grid表格点击表头标题排序实现: 通过ajax方式加载数据之后,点击表头排序两种方式实现. 第一种: grid.set({ dataAction: 'local', url: '', ...

  10. C语言遍历目录文件并排序

    有时候需要遍历目录文件,但是默认的函数并不支持指定排序的功能,现在介绍一种排序的遍历目录方式,默认按照文件名的数字进行排序 window版本 string split_pathexe(string s ...

最新文章

  1. while(scanf(%d,n)!=EOF)
  2. javaweb学习总结(七)——HttpServletResponse对象(一)
  3. linux文件名中文乱码解决
  4. 新内容,新交互”全球视频云创新挑战
  5. C实现二叉树的先序遍历,中序遍历,后序遍历
  6. 【HDU - 3342】Legal or Not(拓扑排序)
  7. 【推荐】 女人愁嫁时代终于来临
  8. Hadoop Hbase单机配置
  9. 架构解密从分布式到微服务:微服务架构到底是什么?
  10. ccf_201712-02
  11. Mac版pages快捷键大全
  12. 南京工程学院计算机英语,南京工程学院是什么意思
  13. 学计算机的都是傻子?《打工人的点点思考》
  14. UCOS学习(一)——前后台系统、RTOS系统
  15. 变分贝叶斯推断(Variational Bayes Inference)简介
  16. TCP通信常用的send,sendto,recv,recvfrom函数详解
  17. 批处理获取整台计算机的盘符,可以用批处理的方法更改盘符吗?
  18. ofdm中IFFT matlab,OFDM中IFFT后得到的数据应该怎样处理?
  19. 机床数据采集之新代(SYNETC)IP网络地址参数设定
  20. 95%置信区间的含义_总体均数的95%置信区间的含义是

热门文章

  1. java stringbuffer数组_Java中字符数组、String类、StringBuffer三者之间相互转换
  2. html单击出现下拉菜单,*OnClick实现点击主菜单时出现下拉菜单,已实现但是有问题,求助!*...
  3. RocketMQ(十三)——实战-普通消息的发送与消费
  4. 5-1计算机视觉的基本概念
  5. Python机器学习:梯度下降法002模拟实现梯度下降法
  6. ext中的EXT.XTemplate()
  7. css根据当前宽度设置css,JS和CSS实现自动根据分辨率设置页面宽度
  8. Java 设计模式之装饰器模式
  9. java 匿名委托_委托,匿名方法,λ 表达式
  10. 现在更新鸿蒙会成为小白鼠吗,如果荣耀Magic3搭载了屏下镜头和鸿蒙系统,你会做第一批吗?...