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 全局变量范围分析
Aug 07 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 PHP
php中rename函数用法分析
Nov 15 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
详细解读PHP中接口的应用
Aug 12 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
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生成带有雪花背景的验证码
2008/09/28 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
浅谈js闭包理解
2019/04/01 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
Python常用列表数据结构小结
2014/08/06 Python
详解python之配置日志的几种方式
2017/05/22 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
如何理解Python中包的引入
2020/05/29 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
经典c++面试题五
2014/12/17 面试题
儿科护士自我鉴定
2013/10/14 职场文书
消防安全管理制度
2014/02/01 职场文书
个人贷款承诺书
2014/03/28 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
财务会计求职信范文
2015/03/20 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL
SQL Server中的游标介绍
2022/05/20 SQL Server