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 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
php数组转成json格式的方法
Mar 09 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php测试kafka项目示例
Feb 06 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
innerText 使用示例
2014/01/23 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
python zip()函数的使用示例
2020/09/23 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
小学教师自我鉴定
2013/11/07 职场文书
怎样写好自我鉴定
2013/12/04 职场文书
民事上诉状范文
2015/05/22 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
MySQL创建表操作命令分享
2022/03/25 MySQL
js作用域及作用域链工作引擎
2022/07/07 Javascript