php文件管理,可以点击按照时间,大小,名称排序

php文件管理,可以点击按照时间,大小,名称排序

本例没有用到jquery

演示

PHP Code

  1. <?php
  2. $rootdir="./";
  3. $spacenum=0;
  4. $filenum=0;
  5. $allfilesize=0;
  6. echo "<h1>文件管理freejs.net测试</h1>";
  7. echo "<a href=‘‘>重置</a>";
  8. readLogDir($rootdir);
  9. echo "<hr>";
  10. echo "Total files count: $filenum.<br>";
  11. echo "Total disk space used: $allfilesize<br>";
  12. $freespace=diskfreespace("/");
  13. echo "residue disk space: $freespace<br>";
  14. function readLogDir($subdir){
  15. global $rootdir,$spacenum,$filenum,$allfilesize;
  16. @chdir($subdir) or die ("error:could not change to this directory!");
  17. $dirobject=dir($subdir);
  18. 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>";
  19. $i=0;
  20. while ($file=$dirobject->read()){
  21. if($file=="." || $file==".."){
  22. continue;
  23. }
  24. $i=$i+1;
  25. echo "<tr bgcolor=‘#e0e0e0‘><td>".$i."<a href=.php?file_dir=".$rootdir."&file_name=".$file." target=_blank>";
  26. 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>";
  27. $allfilesize+=filesize($file);
  28. $filenum++;
  29. }
  30. echo "</table>";
  31. return;
  32. }
  33. ?>
  34. <script src="table_sort.js"></script>

JavaScript Code

  1. /**
  2. * table排序
  3. * anthor liueh
  4. */
  5. function JM_PowerList(colNum)
  6. {
  7. headEventObject=event.srcElement;//取得引发事件的对象
  8. while(headEventObject.tagName!="TR") //不是tr行,则从底下的td冒泡上来寻找到相应行
  9. {
  10. headEventObject=headEventObject.parentElement;
  11. }
  12. for (i=0;i<headEventObject.children.length;i++)
  13. {
  14. if (headEventObject.children[i]!=event.srcElement)//找到事件发生的td单元格
  15. {
  16. headEventObject.children[i].className=‘listTableHead‘;//把点击的列的className属性设为listTableHead
  17. }
  18. }
  19. var tableRows=0;
  20. trObject=clearStart.children[0].children; //取得表格中行对象, 原来这里叫DataTable, 可能是你写错了吧??
  21. for (i=0;i<trObject.length;i++)
  22. {
  23. Object=clearStart.children[0].children[i];//取得每行的对象
  24. tableRows=(trObject[i].id==‘ignore‘)?tableRows:tableRows+1;//如果不是忽略行,则行数加一
  25. }
  26. var trinnerHTML=new Array(tableRows);
  27. var tdinnerHTML=new Array(tableRows);
  28. var tdNumber=new Array(tableRows)
  29. var i0=0
  30. var i1=0
  31. for (i=0;i<trObject.length;i++)
  32. {
  33. if (trObject[i].id!=‘ignore‘)
  34. {
  35. trinnerHTML[i0]=trObject[i].innerHTML;//把行放在数组里
  36. tdinnerHTML[i0]=trObject[i].children[colNum].innerHTML;//把要排序的行中td的内容放数组里
  37. tdNumber[i0]=i;//行号
  38. i0++;//加一,下个循环用
  39. }
  40. }
  41. sourceHTML=clearStart.children[0].outerHTML;//取得表格中所有tr的html代码
  42. //对所有td中的字符串进行排序, 算不算冒泡排序???
  43. for (bi=0;bi<tableRows;bi++)
  44. {
  45. for (i=0;i<tableRows;i++)
  46. {
  47. if(tdinnerHTML[i]>tdinnerHTML[i+1])
  48. {
  49. t_s=tdNumber[i+1];
  50. t_b=tdNumber[i];
  51. tdNumber[i+1]=t_b;
  52. tdNumber[i]=t_s;
  53. temp_small=tdinnerHTML[i+1];
  54. temp_big=tdinnerHTML[i];
  55. tdinnerHTML[i+1]=temp_big;
  56. tdinnerHTML[i]=temp_small;
  57. }
  58. }
  59. }
  60. var showshow=‘‘;
  61. var numshow=‘‘;
  62. for (i=0;i<tableRows;i++)
  63. {
  64. showshow=showshow+tdinnerHTML[i]+‘\n‘;//把排序好的td的内容存在showshow字串里
  65. numshow=numshow+tdNumber[i]+‘|‘; //把排序好的相应的行号也存在numshow中
  66. }
  67. sourceHTML_head=sourceHTML.split("<TBODY>");//从<TBODY>截断,我试了,前头串为空
  68. numshow=numshow.split("|");
  69. var trRebuildHTML=‘‘;
  70. if (event.srcElement.className==‘listHeadClicked‘)
  71. {//已点击的列, 则逆排
  72. for (i=0;i<tableRows;i++)
  73. {
  74. trRebuildHTML=trRebuildHTML+trObject[numshow[tableRows-1-i]].outerHTML;//取出排序好的tr的内容连接起来
  75. }
  76. event.srcElement.className=‘listHeadClicked0‘;
  77. }
  78. else
  79. {//默认顺排,新点击顺排
  80. for (i=0;i<tableRows;i++)
  81. {
  82. trRebuildHTML=trRebuildHTML+trObject[numshow[i]].outerHTML;
  83. }
  84. event.srcElement.className=‘listHeadClicked‘;
  85. }
  86. //取得排序后的tr集合结果字符串
  87. var DataRebuildTable=‘‘;
  88. //把旧的表格头和新的tr排序好的元素连接起来, (修改了一下)
  89. DataRebuildTable = "<table border=0 width=600 id=‘clearStart‘ align=‘center‘><TBODY>" + trObject[0].outerHTML + trRebuildHTML + "</TBODY>" +
  90. "</table>";
  91. clearStart.outerHTML=DataRebuildTable;//表格用新串重新写一次
  92. }

原文地址:http://www.freejs.net/article_jquerywenzi_147.html

php文件管理,可以点击按照时间,大小,名称排序

时间: 2024-08-18 12:03:45

php文件管理,可以点击按照时间,大小,名称排序的相关文章

C#文件和文件文件夹按时间、名称排序-顺序与倒序

对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间.按文件名排序.在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序.冒泡排序等. 文件排序的方法也适用于文件夹,只是传递的变量不同.为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序.按时间顺序与倒序. 一.C#文件排序 1.按名称顺序排列 /// <summary> /// C#按文件名排序(顺序

js 判断日期时间大小

1 checkTime = function() { 2 var startTime = document.getElementById("startTime").value; 3 var endTime = document.getElementById("endTime").value; 4 compareCalendar(startTime, endTime); 5 } 6 //比较日前大小 7 function compareDate(checkStartD

C#比较时间大小 1、比较时间大小的实验

1.比较时间大小的实验    string st1="12:13"; string st2="14:14"; DateTime dt1=Convert.ToDateTime(st1); DateTime dt2=Convert.ToDateTime(st2); DateTime dt3=DateTime.Now; if(DateTime.Compare(dt1,dt2)>0) msg.Text=st1+">"+st2; else ms

[C#]DateTime时间大小的比较

C#实现DateTime时间大小比较的两种操作 1. 直接比较 string strTime1 = DateTime.Now.ToString();    string strTime2 = DateTime.Now.AddDays(-1).ToString();    DateTime dt1 = Convert.ToDateTime(strTime1);    DateTime dt2 = Convert.ToDateTime(strTime2);    if ( dt1 > dt2 )  

js前端验证时间大小

replace(/\-/g, "\/")是根据验证表达式把日期转化成长日期格式 1 function checkStartTimeAndEndTime(startTime, endTime) { 2 var sTime = new Date(startTime.replace("/\-/g", "\/")); 3 var eTime = new Date(endTime.replace("/\-/g", "\/&qu

SQL 比较时间大小

比较字符串类型的时间大小 数据库中的时间是varchar类型的,MySql使用CURDATE()来获取当前日期,SqlServer通过GETDATE()来获取当前日期 1. 直接使用字符串来比较 注意:要保证两个数据的类型完全相同,否则异常 比如A:"2016-09-01",如果B数据是:"2016-9-2",那么无法进行比较 2. 通过类型转换函数convert(), 注意:要保证字符串的时间值正确,否则异常, 比如“2016-2-30”,2月没有30号,所以在转

前端传一个时间,在后台中比较时间大小的操作

public void getOperatingImcomeDataList(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date state=DateUtil.getDateByString(beginTime,DateUtil.DATE_PATTERN_23); Date edate=DateUtil.getDateByString(endTime,DateUtil.DATE_PAT

js 日期时间大小比较

<body> 开始时间:<input onfocus="setday(this)" id="startTime" name="startTime">到 结束时间:<input onfocus="setday(this)" id="endTime" name="endTime"> <input type="button" onc

C#比较两个时间大小

DateTime t1 = Convert.ToDateTime("2012-12-31 23:59:00");            DateTime t2 = Convert.ToDateTime("2013-1-1 00:01:00");            TimeSpan ts = t2 - t1;            int ss = Convert.ToInt32(ts.TotalMinutes);            textBox1.Text