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


Posted in PHP onAugust 07, 2009

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

<?php 
$rootdir="./"; 
$spacenum=0; 
$filenum=0; 
$allfilesize=0; 
echo "<h1>文件管理调试测试</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> 
需要的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;//表格用新串重新写一次 
}
PHP 相关文章推荐
php 更新数据库中断的解决方法
Jun 05 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
PHP Cookie学习笔记
Aug 23 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 PHP
PHP 翻页 实例代码
Aug 07 #PHP
php Sql Server连接失败问题及解决办法
Aug 07 #PHP
php_xmlhttp 乱码问题解决方法
Aug 07 #PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 #PHP
php 全局变量范围分析
Aug 07 #PHP
PHP 多维数组排序实现代码
Aug 05 #PHP
PHP 简单数组排序实现代码
Aug 05 #PHP
You might like
PHP脚本的10个技巧(6)
2006/10/09 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP生成器简单实例
2015/05/13 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
代码生成器 document.write()
2007/04/15 Javascript
jQuery 加上最后自己的验证
2009/11/04 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
python中如何使用朴素贝叶斯算法
2017/04/06 Python
python基于ID3思想的决策树
2018/01/03 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
keras 权重保存和权重载入方式
2020/05/21 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
戴尔美国官网:Dell
2016/08/31 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
我的求职计划书
2014/01/10 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
投标担保书范文
2014/04/02 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
六查六看心得体会
2014/10/14 职场文书
2014年电话销售工作总结
2014/12/01 职场文书