当前位置: 代码迷 >> PHP >> php文件管理,可以点击依照时间,大小,名称排序
  详细解决方案

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

热度:36   发布时间:2016-04-28 19:39:57.0
php文件管理,可以点击按照时间,大小,名称排序

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

?本例没有用到jquery

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

?

?

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. ??
  15. function?readLogDir($subdir){???
  16. global?$rootdir,$spacenum,$filenum,$allfilesize;???
  17. ??
  18. @chdir($subdir)?or?die?("error:could?not?change?to?this?directory!");???
  19. $dirobject=dir($subdir);???
  20. 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>";???
  21. $i=0;???
  22. while?($file=$dirobject->read()){???
  23. ??
  24. if($file=="."?||?$file==".."){???
  25. continue;???
  26. }???
  27. $i=$i+1;???
  28. echo?"<tr?bgcolor='#e0e0e0'><td>".$i."<a?href=.php?file_dir=".$rootdir."&file_name=".$file."?target=_blank>";???
  29. 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>";???
  30. $allfilesize+=filesize($file);???
  31. $filenum++;???
  32. }???
  33. echo?"</table>";???
  34. return;???
  35. }???
  36. ?>???
  37. ??
  38. <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. ??
  13. for?(i=0;i<headEventObject.children.length;i++)???
  14. {???
  15. if?(headEventObject.children[i]!=event.srcElement)//找到事件发生的td单元格???
  16. {???
  17. headEventObject.children[i].className='listTableHead';//把点击的列的className属性设为listTableHead???
  18. }???
  19. }???
  20. ??
  21. var?tableRows=0;???
  22. trObject=clearStart.children[0].children;?//取得表格中行对象,?原来这里叫DataTable,?可能是你写错了吧?????
  23. for?(i=0;i<trObject.length;i++)???
  24. {???
  25. Object=clearStart.children[0].children[i];//取得每行的对象???
  26. tableRows=(trObject[i].id=='ignore')?tableRows:tableRows+1;//如果不是忽略行,则行数加一???
  27. }???
  28. ??
  29. var?trinnerHTML=new?Array(tableRows);???
  30. var?tdinnerHTML=new?Array(tableRows);???
  31. var?tdNumber=new?Array(tableRows)???
  32. var?i0=0???
  33. var?i1=0???
  34. for?(i=0;i<trObject.length;i++)???
  35. {???
  36. if?(trObject[i].id!='ignore')???
  37. {???
  38. trinnerHTML[i0]=trObject[i].innerHTML;//把行放在数组里???
  39. tdinnerHTML[i0]=trObject[i].children[colNum].innerHTML;//把要排序的行中td的内容放数组里???
  40. tdNumber[i0]=i;//行号???
  41. i0++;//加一,下个循环用???
  42. }???
  43. }???
  44. sourceHTML=clearStart.children[0].outerHTML;//取得表格中所有tr的html代码???
  45. ??
  46. //对所有td中的字符串进行排序,?算不算冒泡排序??????
  47. for?(bi=0;bi<tableRows;bi++)???
  48. {???
  49. for?(i=0;i<tableRows;i++)???
  50. {???
  51. if(tdinnerHTML[i]>tdinnerHTML[i+1])???
  52. {???
  53. t_s=tdNumber[i+1];???
  54. t_b=tdNumber[i];???
  55. tdNumber[i+1]=t_b;???
  56. tdNumber[i]=t_s;???
  57. temp_small=tdinnerHTML[i+1];???
  58. temp_big=tdinnerHTML[i];???
  59. tdinnerHTML[i+1]=temp_big;???
  60. tdinnerHTML[i]=temp_small;???
  61. }???
  62. }???
  63. }???
  64. ??
  65. ??
  66. ??
  67. var?showshow='';???
  68. var?numshow='';???
  69. for?(i=0;i<tableRows;i++)???
  70. {???
  71. showshow=showshow+tdinnerHTML[i]+'\n';//把排序好的td的内容存在showshow字串里???
  72. numshow=numshow+tdNumber[i]+'|';?//把排序好的相应的行号也存在numshow中???
  73. }???
  74. ??
  75. sourceHTML_head=sourceHTML.split("<TBODY>");//从<TBODY>截断,我试了,前头串为空???
  76. ??
  77. numshow=numshow.split("|");???
  78. var?trRebuildHTML='';???
  79. if?(event.srcElement.className=='listHeadClicked')???
  80. {//已点击的列,?则逆排???
  81. for?(i=0;i<tableRows;i++)???
  82. {???
  83. trRebuildHTML=trRebuildHTML+trObject[numshow[tableRows-1-i]].outerHTML;//取出排序好的tr的内容连接起来???
  84. ??
  85. }???
  86. event.srcElement.className='listHeadClicked0';???
  87. }???
  88. else???
  89. {//默认顺排,新点击顺排???
  90. for?(i=0;i<tableRows;i++)???
  91. {???
  92. trRebuildHTML=trRebuildHTML+trObject[numshow[i]].outerHTML;???
  93. }???
  94. event.srcElement.className='listHeadClicked';???
  95. }???
  96. //取得排序后的tr集合结果字符串???
  97. var?DataRebuildTable='';???
  98. //把旧的表格头和新的tr排序好的元素连接起来,?(修改了一下)???
  99. DataRebuildTable?=?"<table?border=0?width=600?id='clearStart'?align='center'><TBODY>"?+?trObject[0].outerHTML?+?trRebuildHTML?+?"</TBODY>"?+???
  100. ??
  101. "</table>";???
  102. clearStart.outerHTML=DataRebuildTable;//表格用新串重新写一次???
  103. ??
  104. }???

?


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

  相关解决方案