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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
一个图形显示IP的PHP程序代码
Oct 19 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
php检测useragent版本示例
Mar 24 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 PHP
PHP大文件及断点续传下载实现代码
Aug 18 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删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
JS常用函数使用指南
2014/11/23 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
python使用列表的最佳方案
2020/08/12 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
教师优秀党员事迹材料
2014/08/14 职场文书
班主任自我评价范文
2015/03/11 职场文书
演讲比赛主持词
2015/06/29 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python