PHP Classes

File: llbra.php

Recommend this page to a friend!
  Classes of Lucas Arruda   File Man   llbra.php   Download  
File: llbra.php
Role: Application script
Content type: text/plain
Description: The interface
Class: File Man
Web interface to manipulate files and directories
Author: By
Last change:
Date: 20 years ago
Size: 15,793 bytes
 

Contents

Class file image Download
<?php /** * Fileman - Classe para manipulacao de arquivo e diretórios. * Recomendada para edição de sites e para uso em webserver pessoal * * Autor: Lucas Brito Arruda (llbra) - http://llbra.tk - llbra@bol.com.br * * $Id: llbra.php v 0.1.0 Initiated: ? Finished: ? Published: 05/02/2004 (mm/dd/yyyy) * - Interface based on fileman.php (originaly by llbra) $ */ /* USANDO O llbra LOGIN (3.0) PARA PROTEGER A INTERFACE E SÓ PERMITIR O ADMINISTRADOR 1 (ADMIN MASTER) ACESSAR include "protect.php"; $nome = $_COOKIE['llbra_nome']; include "usuarios/$nome.php"; if ($admin != 1){ exit("Acess Denied"); } */ function pegavar($varname,$METHOD="POST"){ if ($METHOD == "POST"){ $log = trim(htmlspecialchars($_POST[$varname])); }else if ($METHOD == "GET"){ $log = trim(htmlspecialchars($_GET[$varname])); }else{ $log = trim(htmlspecialchars($_REQUEST[$varname])); } return $log; } // ROUTINE $act = pegavar("action"); $file = pegavar("file"); $dir = pegavar("dir"); // EXCEPTIONS if ($act == "f_write"){ if (!$file){ $file = "$dir/"; } } if ($act == "upload"){ $file = 1; } if ($act == "f_dir"){ $file = $dir; } // CHECK if (!$act){ $stop .= "- Action is empty.<br>"; } if (!$file){ $stop .= "- File has not been selected.<br>"; } if (!$stop){ if ($act != "download" && $act != "nozipdl"){ echo " <style> textarea { width: 100%; height: 100%} </style>"; } include "fileman.php"; $man = new fileman(); if ($act == "write"){ $content = pegavar("f_content"); $method = pegavar("f_method"); $line = pegavar("f_line"); $jump = pegavar("f_jump"); $f_file = pegavar("f_file"); if($f_file != ""){ $file = $f_file; } $man->write_file($file,$content,$method,$line,$jump); echo "<a href=files.php>Back</a>"; echo " - <a href=javascript:document.vi_form.submit()>Read</a> <form name=vi_form action='$PHP_SELF' method=post> <input type=hidden name=action value=s_read> <input type=hidden name=file value=$file></form>"; }else if ($act == "del"){ $line = pegavar("f_line"); $all = pegavar("f_all"); $man->del_file($file,$line,$all); echo "<a href=files.php>Back</a>"; echo " - <a href=javascript:document.vi_form.submit()>Read</a> <form name=vi_form action='$PHP_SELF' method=post> <input type=hidden name=action value=s_read> <input type=hidden name=file value=$file></form>"; }else if ($act == "read"){ $start = pegavar("f_start"); $end = pegavar("f_end"); $key = pegavar("f_key"); $ret = pegavar("f_ret"); $high = pegavar("f_high"); $url = pegavar("url"); if($ret == 0){ $man->read_file($file,$start,$end,$key,$ret,$high); }else{ $return = $man->read_file($file,$start,$end,$key,$ret); echo "<form method=POST action=$url>"; $ret = htmlspecialchars($return); $ret = nl2br($ret); echo "<input type=hidden name=return value=\"$ret\"> <input type=submit name=ok value=Enviar></form>"; echo "<textarea name=return cols=100 rows=10>$return</textarea>"; } }else if ($act == "s_read"){ $man->read_file($file); }else if ($act == "find"){ $content = pegavar("f_content"); $pagin = pegavar("f_pagin"); $ret = $man->find_file($file,stripslashes($content)); $pagin = ereg_replace("X","$ret",$pagin); $pagin = ereg_replace("Y","'$content'",$pagin); echo $pagin; echo "<br><br>"; echo "<a href=files.php>Back</a>"; }else if ($act == "replace"){ $content = pegavar("f_content"); $line = pegavar("f_line"); $man->replace_file($file,$content,$line); echo "<a href=files.php>Back</a>"; echo " - <a href=javascript:document.vi_form.submit()>Read</a> <form name=vi_form action='$PHP_SELF' method=post> <input type=hidden name=action value=s_read> <input type=hidden name=file value=$file></form>"; }else if ($act == "edit"){ $content = pegavar("t_content"); $f_file = pegavar("f_file"); unlink($file); if ($f_file != ""){ $file = $f_file; } $man->write_file($file,$content,$method=0,$line="null",$jump=0); echo "<a href=files.php>Back</a>"; echo " - <a href=javascript:document.vi_form.submit()>Read</a> <form name=vi_form action='$PHP_SELF' method=post> <input type=hidden name=action value=s_read> <input type=hidden name=file value=$file></form>"; }else if ($act == "exe"){ echo "<iframe id=ifr src=$file width=770 height=200></iframe>"; echo "<br><br><a href='files.php'>Back</a>"; }else if ($act == "download"){ include "zip.lib.php"; $zipfile = new zipfile(); $data = $man->arr($file); $data = implode("",$data); $file = explode("/",$file); $file = end($file); $filename = explode(".",$file); $novalue = array_pop($filename); $filename = implode("_",$filename); $filename = $filename.".zip"; header('Content-Type: application/x-zip'); header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header("Content-Disposition: attachment; filename=".$filename); header('Pragma: no-cache'); /* header('Content-Disposition: inline; filename="' . $filename . '"'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); */ $zipfile->addFile($data,$file); $data = $zipfile->file(); echo $data; }else if ($act == "nozipdl"){ $data = $man->arr($file); $data = implode("",$data); $file = explode("/",$file); $file = end($file); /* $filename = explode(".",$file); $novalue = array_pop($filename); $filename = implode("_",$filename); */ $filename = $file; header('Content-Type: application/force-download'); header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header("Content-Disposition: attachment; filename=".$filename); header('Pragma: no-cache'); echo $data; }else if ($act == "upload"){ $dir = pegavar("dir"); /* SHOW CONTENT OF $_FILES foreach ($_FILES as $key1 => $value1) { echo "\$_FILES[$key1] = $value1<br>\n"; foreach ($value1 as $key2 => $value2) { echo "\$_FILES[$key1][$key2] = $value2<br>\n"; foreach($value2 as $key3 => $value3) { echo "\$_FILES[$key1][$key2][$key3] = $value3<br>\n"; } } } // OR echo "<pre>"; print_r($_FILES); echo "</pre>"; */ /* TESTING BAD CHAR REPLACEMENT - not implemented yet $badChar = array ("-"," ") ; $newChar = array ("_","_") ; */ for ( $i = 0 ; $i < count($_FILES['upfile']) ; $i++){ /* REMOVING BAD CHARS - not implemented yet foreach ($badChar as $key => $oldChar){ $_FILES['upfile']['name'] = ereg_replace($oldChar[$key], $newChar[$key], $_FILES['upfile']['name']); } */ if(!move_uploaded_file($_FILES['upfile']['tmp_name'][$i],$dir."/".$_FILES['upfile']['name'][$i])){ $erro .= $FILES["upfile"]['name'][$i]; } } if (!isset($erro)){ echo "All uploads were sucesseful"; }else{ echo "The uploads below failed<br>$erro"; } /* FOR ONE FILE - just for example if(move_uploaded_file($_FILES['upfile']['tmp_name'],$dir."/".$_FILES['upfile']['name'])){ echo "Upload sucessful<br><br>"; }else{ echo "Error during the upload process<br><br>"; } echo "<a href=files.php>Back</a>"; */ }else if ($act == "dir"){ $action = pegavar("f_action"); if ($action == "make"){ $name = pegavar("f_name_mk"); $chmod = pegavar("f_chmod"); $name = "$file/$name"; echo "<b>Dir: </b>".$name."<br>"; /* $brkName = explode("/",$name); for ( $x=0 ; $x<count($brkName) ; $x++){ $fName .= $brkName[$x]."/"; if (!is_dir($fName)) if(!@mkdir($fName,$chmod)) $erro .= "- $fName not created<br>"; else $result .= "- Dir '$fName' created<br>"; } $result = (!$result ? "Directory already exists!<br>" : $result) ; if (!$erro) echo "<b>Operation sucessful. Result:</b><br>".$result; else echo "<b>An error has occured during the process!</b><br>".$erro; */ function mkdirs($dirname) //mkdir { $dir=split("/", $dirname); for ($i=0;$i<count($dir);$i++) { $path.=$dir[$i]."/"; if (!is_dir($path)) @mkdir($path,0644); @chmod($path,0644); } if (is_dir($dirname)) return 1; } echo mkdirs($name) ? "Operation sucessful. Directory created<br>" : "An error has ocurred.<br>"; echo "<a href=files.php>Back</a>"; }else if ($action == "del"){ $name = pegavar("f_name_del"); echo "<b>Dir: </b>".$name."<br>"; function deldir($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = readdir($handle))) { if($FolderOrFile != "." && $FolderOrFile != "..") { if(is_dir("$dir/$FolderOrFile")) { deldir("$dir/$FolderOrFile"); } // recursive else { unlink("$dir/$FolderOrFile"); } } } closedir($handle); if(rmdir($dir)) { $success = true; } return $success; } echo deldir($name)? "Operation sucessfull.<br>" : "An error has ocurred.<br>"; echo "<a href=files.php>Back</a>"; }else if ($action == "rename"){ $oldname = pegavar("f_name_old"); $newname = pegavar("f_name_new"); echo "<strong>Operation: </strong>".$oldname . " to " . $newname ."<br>" ; if (!@rename($oldname,$newname)) echo "An error has ocurred during the rename.<br>"; else echo "File/dir renamed.<br>"; echo "<a href=files.php>Back</a>"; }else{ echo "Action unavaiable.<br>"; echo "<a href=files.php>Back</a>"; } }else{ echo "<form name=f_form id=f_form action='$PHP_SELF' method=post> <input type=hidden name=file value=$file>"; if ($act == "f_write"){ echo "<strong>WRITE</strong><BR><BR>"; echo "<input type=hidden name=action value=write>"; echo "<strong>File:</strong> $file<br>"; if ($file == "$dir/"){ echo "<strong>Define patch/file:</strong> <input type=text name=f_file value=$file><br>"; } echo "<strong>Content:</strong><br> <textarea cols=100 rows=10 name=f_content></textarea><br>"; echo "<strong>Method:</strong> "; echo "A+ (fim): <input type=radio name=f_method value=0 checked> W+ (inicio): <input type=radio name=f_method value=1><br>"; $lines = $man->arr($file,1); echo "<strong>Line to write: </strong>"; echo "<select name=f_line>"; echo "<option value=null>null</option>"; for ($x=0;$x<$lines;$x++){ echo "<option value=$x>$x</option>"; } echo "</select><br>"; echo "<strong>Jump:</strong> "; echo "Y: <input type=radio name=f_jump value=1> N: <input type=radio name=f_jump value=0 checked> <br>"; echo "<strong>File content:</strong><br>"; echo "<textarea name=t_content cols=100 rows=10>" .$man->read_file($file,$start=0,$end="null",$key=1,$ret=1,$high=0). "</textarea>"; }else if ($act == "f_del"){ echo "<input type=hidden name=action value=del>"; echo "<strong>File:</strong> $file<br>"; $lines = $man->arr($file,1); echo "<strong>Line to be deleted: </strong>"; echo "<select name=f_line>"; for ($x=0;$x<=$lines;$x++){ echo "<option value=$x>$x</option>"; } echo "</select><br>"; echo "<strong>Delet hole file: </strong>"; echo "Y <input type=radio name=f_all value=1> N <input type=radio name=f_all value=0 selected>"; echo "<strong>File content:</strong><br>"; echo "<textarea name=t_content cols=100 rows=10>" .$man->read_file($file,$start=0,$end="null",$key=1,$ret=1,$high=0). "</textarea>"; }else if ($act == "f_read"){ echo "<strong>READ</strong> (You don´t need to set the values above, if you don´t want)<br><br><br>"; echo "<input type=hidden name=action value=read>"; echo "<strong>File:</strong> $file<br>"; $lines = $man->arr($file,1); echo "<strong>Start line:</strong> "; echo "<select name=f_start>"; for ($x=0;$x<$lines;$x++){ echo "<option value=$x>$x</option>"; } echo "</select><br>"; echo "<strong>End line:</strong> "; echo "<select name=f_end>"; echo "<option value=null>null</option>"; for ($x=0;$x<$lines;$x++){ echo "<option value=$x>$x</option>"; } echo "</select><br>"; echo "<strong>Line numbering:</strong> Y <input type=radio name=f_key value=1> N <input type=radio name=f_key value=0 checked> (doesn´t work with highlight)<br>"; echo '<strong>Return in var ($return):</strong> Y <input type=radio name=f_ret value=1> N <input type=radio name=f_ret value=0 checked> - Url to send $return (post): <input type=text name=url value=http://www.url.com/index.php><br>'; echo '<strong>Highlight (php code):</strong> Y <input id=f_high1 type=radio name=f_high value=1> N <input type=radio name=f_high value=0 checked> (format the rest with &lt;pre&gt; - invalidate numbering if selected - doesn´t work whit return)<br>'; }else if ($act == "f_find"){ echo "<input type=hidden name=action value=find>"; echo "<strong>FIND</strong><br><br>"; echo "<strong>File: </strong>$file<br>"; echo "<strong>Word: </strong>"; echo "<input type=text name=f_content><br>"; echo "<strong>Pagination : </strong>"; echo "<input type=text name=f_pagin value=\"X result (s) for Y\"> ('X' will be replaced by the result number and 'Y' by the therm)"; }else if ($act == "f_replace"){ echo "<input type=hidden name=action value=replace>"; echo "<strong>REPLACE</strong><br><br>"; echo "<strong>Content:</strong><br> <textarea cols=100 rows=10 name=f_content></textarea><br>"; echo "<strong>Line:</strong> "; echo "<select name=f_line>"; $lines = $man->arr($file,1); for ($x=0;$x<$lines;$x++){ echo "<option value=$x>$x</option>"; } echo "</select><br>"; echo "<strong>File content:</strong><br>"; echo "<textarea name=t_content cols=100 rows=10>" .$man->read_file($file,$start=0,$end="null",$key=1,$ret=1,$high=0). "</textarea>"; }else if ($act == "f_edit"){ echo "<strong>EDIT</strong><br><br>"; echo "<input type=hidden name=action value=edit>"; echo "<strong>File: </strong>$file<br>"; echo "<strong>New patch/name:</strong>: <input type=text name=f_file value=$file>"; echo "<textarea name=t_content cols=100 rows=30>" .$man->read_file($file,$start=0,$end="null",$key=0,$ret=1,$high=0). "</textarea>"; }else if ($act == "f_dir"){ echo "<strong>DIR</strong><br><br>"; echo "<input type=hidden name=action value=dir>"; echo "<strong>Dir: </strong>$file<br>"; echo "<strong>Action: </strong><br>"; echo "<input type=radio name='f_action' value=make> <strong>Make dir: </strong> Name <input type=text name='f_name_mk' value=$dir/> Chmod <input type=text name='f_chmod' value=0644><br>"; echo "<input type=radio name='f_action' value=rename> <strong>Rename dir: </strong> Old Name <input type=text name='f_name_old' value=$dir> New name <input type=text name='f_name_new'><br>"; echo "<input type=radio name=f_action value=del> <strong>Del dir: </strong> Name <input type=text name='f_name_del' value=$dir> - Caution! This will del all files inside."; } echo "<br><br><input type=submit name=submit value=ok> </form>"; } }else{ echo "<strong>The following errors were found:</strong><br> $stop"; echo "<br><br>"; echo "<a href=files.php>Back</a>"; } ?>