zoukankan      html  css  js  c++  java
  • 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($subdiror 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]+' ';//把排序好的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
  • 相关阅读:
    Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
    DLL反编译,DLL反编译成C#代码, 有些不良同学会用到哦!
    各种分享按钮代码
    ASP.NET 计划任务(不使用外接程序,.net内部机制实现)
    工厂模式{C#描述}
    FI:Customize FBL3N Layout
    简单工厂 工厂模式 抽象工厂C#
    URL, URI 和 URN 之间的区别转
    resize属性,使textarea在ff(火狐)中禁止拉伸
    UML类图几种关系的总结转
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10758829.html
Copyright © 2011-2022 走看看