php文件管理,可以点击按照时间,大小,名称排序
php文件管理,可以点击按照时间,大小,名称排序本例没有用到jquery
演示
PHP Code
[*]<?php
[*]$rootdir="./";
[*]$spacenum=0;
[*]$filenum=0;
[*]$allfilesize=0;
[*]echo "<h1>文件管理freejs.net测试</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>
JavaScript Code
[*]/**
[*]* 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!=event.srcElement)//找到事件发生的td单元格
[*]{
[*]headEventObject.children.className='listTableHead';//把点击的列的className属性设为listTableHead
[*]}
[*]}
[*]
[*]var tableRows=0;
[*]trObject=clearStart.children.children; //取得表格中行对象, 原来这里叫DataTable, 可能是你写错了吧??
[*]for (i=0;i<trObject.length;i++)
[*]{
[*]Object=clearStart.children.children;//取得每行的对象
[*]tableRows=(trObject.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.id!='ignore')
[*]{
[*]trinnerHTML=trObject.innerHTML;//把行放在数组里
[*]tdinnerHTML=trObject.children.innerHTML;//把要排序的行中td的内容放数组里
[*]tdNumber=i;//行号
[*]i0++;//加一,下个循环用
[*]}
[*]}
[*]sourceHTML=clearStart.children.outerHTML;//取得表格中所有tr的html代码
[*]
[*]//对所有td中的字符串进行排序, 算不算冒泡排序???
[*]for (bi=0;bi<tableRows;bi++)
[*]{
[*]for (i=0;i<tableRows;i++)
[*]{
[*]if(tdinnerHTML>tdinnerHTML)
[*]{
[*]t_s=tdNumber;
[*]t_b=tdNumber;
[*]tdNumber=t_b;
[*]tdNumber=t_s;
[*]temp_small=tdinnerHTML;
[*]temp_big=tdinnerHTML;
[*]tdinnerHTML=temp_big;
[*]tdinnerHTML=temp_small;
[*]}
[*]}
[*]}
[*]
[*]
[*]
[*]var showshow='';
[*]var numshow='';
[*]for (i=0;i<tableRows;i++)
[*]{
[*]showshow=showshow+tdinnerHTML+'\n';//把排序好的td的内容存在showshow字串里
[*]numshow=numshow+tdNumber+'|'; //把排序好的相应的行号也存在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].outerHTML;//取出排序好的tr的内容连接起来
[*]
[*]}
[*]event.srcElement.className='listHeadClicked0';
[*]}
[*]else
[*]{//默认顺排,新点击顺排
[*]for (i=0;i<tableRows;i++)
[*]{
[*]trRebuildHTML=trRebuildHTML+trObject].outerHTML;
[*]}
[*]event.srcElement.className='listHeadClicked';
[*]}
[*]//取得排序后的tr集合结果字符串
[*]var DataRebuildTable='';
[*]//把旧的表格头和新的tr排序好的元素连接起来, (修改了一下)
[*]DataRebuildTable = "<table border=0 width=600 id='clearStart' align='center'><TBODY>" + trObject.outerHTML + trRebuildHTML + "</TBODY>" +
[*]
[*]"</table>";
[*]clearStart.outerHTML=DataRebuildTable;//表格用新串重新写一次
[*]
[*]}
原文地址:http://www.freejs.net/article_jquerywenzi_147.html
页:
[1]