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命令行使用方法和命令行参数说明
Apr 08 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php构造函数的继承方法
Feb 09 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
php实现点击可刷新验证码
Nov 07 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
php分享朋友圈的实现代码
Feb 18 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 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数字游戏 计算24算法
2012/06/10 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Python 定义只读属性的实现方式
2020/03/05 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
难忘的一天教学反思
2014/04/30 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
高三化学教学反思
2016/02/22 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python