rendered paste body<html><TITLE>DIR</TITLE><BODY><?php /* ************************************************************** dir.php3 A script to manage files on your web Questions, comments, bug reports to : yannickf@yahoo.com SourceForge project phpFileManager: http://sourceforge.net/project/?group_id=1640 ************************************************************** History Version 0.1 first release Version 0.2 Feb 21 2000 bug correction Version 0.3 Feb 22 2000 change sort algo add icons before files set display for atime, ctime, utime ***************************************************************/function cmp( $a, $b ){ GLOBAL $sort; if( $a->inode == $b->inode ) return 0; switch( $sort ) { case "size": return ($a->size > $b->size) ? -1 : 1; case "type": return strcmp($a->type, $b->type); case "view": return strcmp($a->view, $b->view); case "atime": return ($a->atime > $b->atime) ? -1 : 1; case "ctime": return ($a->ctime > $b->ctime) ? -1 : 1; case "mtime": return ($a->mtime > $b->mtime) ? -1 : 1; case "group": return strcmp($a->group, $b->group); case "inode": return ($a->inode > $b->inode) ? -1 : 1; case "owner": return strcmp($a->owner, $b->owner); case "perms": return ($a->perms > $b->perms) ? -1 : 1; case "ext": return strcmp($a->ext, $b->ext); case "name": default: return 1; }}function getIcons( $ext ) { switch( $ext ) { case "dir": $file = "dir"; break; case "link": $file = "link"; break; case "zip": case "tgz": case "gz": case "Z": $file = "compressed"; break; case "gif": case "jpg": $file = "image2"; break; case "dvi": $file = "dvi"; break; case "": case "exe": $file = "binary"; break; case "sh": case "php": case "php3": case "sql": case "inc": case "js": $file = "script"; break; case "txt": $file = "text"; break; case "html": case "shtml": case "phtml": $file = "world1"; break; default: $file = "generic"; break; } return $IMG="<IMG SRC='icons/".$file.".gif'>";}class MyFile { var $name; var $path; var $type; var $ext; var $stype; var $sfile; var $size; var $file; var $atime; var $ctime; var $mtime; var $group; var $inode; var $owner; var $perms; function set( $filename, $path ) { GLOBAL $cd; $this->name = $filename; $this->path = $path ; $this->file = $this->path."/".$this->name; $this->type = filetype( $this->file ); $this->size = filesize( $this->file ); $this->atime = fileatime( $this->file ); $this->ctime = filectime( $this->file ); $this->mtime = filemtime( $this->file ); $this->group = filegroup( $this->file ); $this->inode = fileinode( $this->file ); $this->owner = fileowner( $this->file ); $this->perms = fileperms( $this->file ); switch( $this->type ) { case "link": $this->sfile = readlink( $this->file ); $this->stype = filetype( $this->sfile ); $this->ext = "link"; break; case "file": $list = explode( ".", $this->name ); $nb = sizeof( $list ); if( $nb > 0 ) $this->stype = $list[$nb-1]; else $this->stype = "???"; $this->ext = $this->stype; switch( $this->stype ) { case "gif": case "GIF": case "jpg": case "JPG": if( isset( $cd ) ) $pwd = $cd."/"; else $pwd = ""; $this->sfile = "<IMG SRC='".$this->file."'>"; break; default: $this->sfile = $this->stype; break; } break; default: $this->stype = ""; $this->sfile = ""; $this->ext = $this->type; break; } } function formatSize() { return number_format( $this->size, 0, ".", " "); }}function genUrl( $ref, $args, $key = "", $val = "" ){ $valist = ""; reset( $args ); if( $key != "" ) $args[ "$key" ] = $val; if( !is_array( $args ) ) return $ref; while( list( $key, $val ) = each( $args ) ) { if( $val == "" ) continue; if( $valist == "" ) $valist .= "?"; else $valist .= "&"; $valist .= $key."=".$val; } return $ref.$valist;}function updir( $path ){ $last = strrchr( $path, "/" ); $n1 = strlen( $last ); $n2 = strlen( $path ); return substr( $path, 0, $n2-$n1 );}$ref = "dir.php3";if( isset( $cd ) ) { $path = $cd; //$lcd = "?cd=$cd'"; $args[ "cd" ] = $cd;}else{ $path = "."; //$lcd = ""; $args[ "cd" ] = "";}if( isset( $nb ) ){ for( $i = 0; $i < $nb; $i++ ) { $var = "id_$i"; if( isset( $$var ) ) { $file = $path."/".$$var; if( is_file( $file ) || is_link( $file ) ) { if( unlink( $file ) ) echo "<BR><b>$file</b> deleted\n"; else echo "<BR>unable to delete <b>$file</b>\n"; } elseif( is_dir( $file ) ) { if( rmdir( $file ) ) echo "<BR><b>$file</b> deleted\n"; else echo "<BR>unable to delete <b>$file</b>\n"; } } }}$step = 100;if( !isset( $sort ) ) $sort = "name";else $args[ "sort" ] = $sort;if( !isset( $from ) ) $from = 0;else $args[ "from" ] = $from;if( !isset( $to ) ) $to = $from + $step;$d = dir($path);echo "\n";echo "<br><a href=$ref >Home</a>\n";$updir = updir($d->path);if( $updir != "." ) echo "<br>Up dir; <a href=$ref?cd=$updir>$updir</a>\n";echo "<br>cd: <a href=$ref?cd=".$d->path."/..>..</a>\n";echo "<br>Chemin: <b>".$d->path."</b>\n";$n = 0;while( $entry=$d->read() ){ $lFiles[ $n ] = new MyFile; $lFiles[ $n ]->set( $entry, $path ); $n++;}$d->close();echo "<FORM NAME='del' METHOD='post' ACTION='".genUrl( $ref, $args )."'>\n";echo "<TABLE BORDER=1>\n";echo "<TR>\n";echo "<TH>D</TH>\n";// echo "<TH><a href='".genUrl( $ref, $args, "sort", "type" )."'>Type</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "name" )."'>Name</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "size" )."'>Size</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "ext" )."'>ext</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "atime" )."'>atime</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "ctime" )."'>ctime</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "mtime" )."'>mtime</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "perms" )."'>perms</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "group" )."'>group</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "owner" )."'>owner</a></TH>\n";echo "<TH><a href='".genUrl( $ref, $args, "sort", "inode" )."'>inode</a></TH>\n";echo "<TH>View</TH>\n";echo "</TR>\n";@usort( $lFiles, cmp );for( $i = 0; $i < $n; $i++ ){ if( ( $i < $from ) || ( $i >= $to ) ) continue; $k = $i; echo "<TR>\n"; echo "<TD><INPUT TYPE='checkbox' NAME='id_$k' VALUE='". $lFiles[ $k ]->name ."'></TD>\n"; $IMG=getIcons( $lFiles[ $k ]->ext ); $dform = "M j y H:i";// echo "<TD ALIGN=CENTER >".$lFiles[ $k ]->type."</TD>\n"; echo "<TD>$IMG".$lFiles[ $k ]->name."</TD>\n"; echo "<TD ALIGN=RIGHT >".$lFiles[ $k ]->formatSize()."</TD>\n"; echo "<TD>".$lFiles[ $k ]->ext ."</TD>\n"; echo "<TD>".date( $dform, $lFiles[ $k ]->atime )."</TD>\n"; echo "<TD>".date( $dform, $lFiles[ $k ]->ctime )."</TD>\n"; echo "<TD>".date( $dform, $lFiles[ $k ]->mtime )."</TD>\n"; echo "<TD>".$lFiles[ $k ]->perms."</TD>\n"; echo "<TD>".$lFiles[ $k ]->group."</TD>\n"; echo "<TD>".$lFiles[ $k ]->owner."</TD>\n"; echo "<TD>".$lFiles[ $k ]->inode."</TD>\n"; switch( $lFiles[ $k ]->type ) { case "link": if( $lFiles[ $k ]->stype == "dir" ) { $tcd = $lFiles[ $k ]->path."/".$lFiles[ $k ]->name; echo "<TD><a href='". genUrl( $ref, $args, "cd", $tcd )."'>". $lFiles[ $k ]->sfile."</a></TD>\n"; } else echo "<TD>".$lFiles[ $k ]->sfile."</TD>\n"; break; case "dir": $tcd = $lFiles[ $k ]->path."/".$lFiles[ $k ]->name; echo "<TD><a href='". genUrl( $ref, $args, "cd", $tcd )."'>". $lFiles[ $k ]->name."</a></TD>\n"; break; case "file": echo "<TD>".$lFiles[ $k ]->sfile."</TD>\n"; break; default: echo "<TD>NO</TD>\n"; break; } echo "</TR>\n";}echo "</TABLE>\n";$from = $from - $step;if( isset( $cd ) ){ echo "<INPUT TYPE='hidden' NAME='cd' VALUE='$cd'>\n";}echo "<INPUT TYPE='hidden' NAME='nb' VALUE='$n'>\n";//echo "<br>from=$from;to=$to;n=$n\n";echo "<br>\n";if( $from >= 0 ){ echo "<a href='". genUrl( $ref, $args, "from", $from )."' >Prev</a>/\n";}if( $to <= $n ){ echo "<a href='". genUrl( $ref, $args, "from", $to )."' >Next</a> \n";}echo "<br>\n";echo "<INPUT TYPE='submit' VALUE='Del'>\n";echo "</FORM>\n";?></body></html>