Calsse eveFile: manipulação de arquivos
Publicado por EVERTON DA ROSA 27/12/2007
[ Hits: 6.721 ]
Homepage: http://everton3x.github.io
A classe eveFile fornece diversas funções para manipular arquivos e diretórios.
Desta forma, consolida todas as funções do PHP com uma única sintaxe.
<? /* eveQuery: Classe para interação com banco de dados ----------------------------------------------------- Desenvolvido por Everton da Rosa. Licença GNU (www.gnu.org). ----------------------------------------------------- eveFile é uma classe PHP para manipulação de arquivos. Versão 1.1 (19 de novembro de 2007) Funções: criar, salvar uploads, deletar, mover, copiar, renomear, pegar informações, abrir, fechar Futuro: informações do diretório Para detalhes e ajuda complementar, consulte http://www.php.net/manual/pt_BR/index.php (manual em português do PHP) Tópicos recomendados: - Classes e Objetos (PHP 5): http://www.php.net/manual/pt_BR/language.oop5.php - Variáveis: http://www.php.net/manual/pt_BR/language.variables.php - Funções do FileSystem: http://www.php.net/manual/pt_BR/ref.filesystem.php Caso faça correções, melhorias ou modificações, favor contatar o desenvolvedor através do e-mail everton3x@gmail.com enviando o código para atualização da classe nos sites onde ela se encontra hospedada. Para exemplo de uso, veja o arquivo eveFile.samples.php Ao utilizar esta classe, por favor indique seu autor da seguinte forma: ----------------------------------------------------- eveFile: Classe para manipulação de arquivos Desenvolvido por Everton da Rosa (everton3x@gmail.com). Licença GNU (www.gnu.org). ----------------------------------------------------- Ao utilizar código baseado nesta classe, por favor referencie da seguinte forma: ----------------------------------------------------- Baseado na classe eveFile: Classe para manipulação de arquivos, desenvolvida por Everton da Rosa (everton3x@gmail.com) sob licença GNU (www.gnu.org). ----------------------------------------------------- */ class eveFile{ //Classe para manipulação de arquivos public $param = array( 'dir' => 'C:\Documents and Settings\Everton\Desktop\\', //diretório padrão da classe 'save_dir' => 'C:\Documents and Settings\Everton\Desktop\\' //diretório padrão para salvar arquivos ); function save($d=false){ //salva no destino um arquivo carregado por upload. $d é o diretório de destino terminado com \ $f = key($_FILES); if($f){ if(!$d){ $d = realpath($param['save_dir']); } if(!is_dir($d)){ exit('O destino não é um diretório!'); } $m = @move_uploaded_file($_FILES[$f]['tmp_name'],$d.$_FILES[$f]['name']); if(!$m){ exit(E_ALL); }else{ return true; } } } function getName($path=false){ //retorna o nome do arquivo. $path deve conter o caminho completo, incluisve o nome do arquivo ex.: c:\teste.txt if(!is_file($path)){ exit('O caminho informado não é um arquivo!'); } if($path){ $path = $realpath($path); $name = @basename($path); return $name; }else{ exit('Nenhum caminho foi definido!'); } } function getPath($path=false){ //retorna o caminho do arquivo. $path deve conter o caminho completo, incluisve o nome do arquivo ex.: c:\teste.txt if(!is_file($path)){ exit('O caminho informado não é um arquivo!'); } if($path){ $path = realpath($path); $dir = @dirname($path); return $dir; }else{ exit('Nenhum caminho foi definido!'); } } function parse($size=false){ //retorna o tamanho de n bytes em Kb, Mb, Gb, etc. if(!size){ exit('Nenhum tamanho foi passado!'); } if($size<=1024){ $parsed = array( 'size' => $size, 'unid' => 'Byte' ); }else{ $size = $size/1024; if($size < 1024){ $parsed = array( 'size' => $size, 'unid' => 'Kbyte' ); }else{ $size = $size/1024; if($size < 1024){ $parsed = array( 'size' => $size, 'unid' => 'Mbyte' ); }else{ $size = $size/1024; if($size < 1024){ $parsed = array( 'size' => $size, 'unid' => 'Gbyte' ); }else{ $parsed = array( 'size' => $size, 'unid' => 'Gbyte' ); } } } } return $parsed; } function free($path=false){ //exibe o espaço disponível no diretório/disco if(!$path){ $path = realpath($param['dir']); } if(!is_dir($path)){ exit('O caminho informado não é um diretório!'); } $free = @disk_free_space($path); $parsed = $this->parse($free); return $parsed; } function sizeDir($path=false){ //exibe o tamanho total do diretório/disco if(!$path){ $path = realpath($param['dir']); } if(!is_dir($path)){ exit('O caminho informado não é um diretório!'); } $free = @disk_total_space($path); $parsed = $this->parse($free); return $parsed; } function fm($option=false,$conf=false){ //função para manipulação de arquivos if(!$option){ exit('Nenhuma opção de manipulação foi informada!'); } if($option == 'copy'){ //copia o arquivo if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_file($o)){ exit("A origem $o não é um arquivo válido!"); } $c = @copy($o,$d); return $c; }elseif($option == 'move'){ //move um arquivo if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_file($o)){ exit("A origem $o não é um arquivo válido!"); } $m = @rename($o,$d); return $m; }elseif($option == 'delete' || $option == 'del'){ if(!$conf['file']){ exit('Arquivo não definido!'); }else{ $f = realpath($conf['file']); } if(!is_file($f)){ exit("O arquivo $f não é um arquivo válido!"); } $d = @unlink($f); return $d; }elseif($option == 'rename'){ //renomeia um arquivo if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_file($o)){ exit("A origem $o não é um arquivo válido!"); } if(dirname($o) != dirname($d)){ exit('Você não pode renomear um arquivo para diretórios diferentes! Para mover, utilize a opção "move".'); } $r = @rename($o,$d); return $r; }elseif($option == 'open'){// abre um arquivo if(!$conf['file']){ exit('Nenhum arquivo informado!'); }else{ $file = realpath($conf['file']); } if(!$conf['mode']){ $mode = 'rt'; }else{ $mode = $conf['mode']; } if(!is_file($file)){ exit("O arquivo $file não é um arquivo válido!"); } $f = @fopen($file,$mode); return $f; }elseif($option == 'close'){ //fecha um arquivo if(!$conf['file']){ exit('Nenhum arquivo informado!'); }else{ $file = $conf['file']; } $f = @fclose($file); return $f; }elseif($option == 'info'){ //retorna um array con informações do arquivo if(!$conf['file']){ exit('Nenhum arquivo informado!'); }else{ $file = realpath($conf['file']); } if(!is_file($file)){ exit("O arquivo $file não é um arquivo válido!"); } $a['name'] = $this->getName($file); $a['dir'] = $this->getDir($file); $a['last_access'] = @fileatime($file); $a['last_modify'] = @filectime($file); $a['group'] = @filegroup($file); $a['owner'] = @fileowner($file); $a['perms'] = @fileperms($file); $a['size'] = @filesize($file); $a['type'] = @filetype($file); $a['exec'] = @is_executable($file); $a['readable'] = @is_readable($file); $a['writable'] = @is_writable($file); return $a; }elseif($option == 'read'){ //lê o conteúdo do arquivo para um array if(!$conf['file']){ exit('Nenhum arquivo definido!'); }else{ $file = realpath($conf['file']); } if(!is_file($file)){ exit("O arquivo $file não é um arquivo válido!"); } $array = @file($file); return $array; }else{ exit("Opção $option desconhecida!"); } } function dm($option=false,$conf=false){ //funções de gerenciamneto de diretórios if(!option){ exit('Nenhuma opção informada!'); } if($option == 'new' || $option == 'create'){ //cria um diretório if(!$config['dir']){ exit('Nenhum diretório informado!'); }else{ $dir = realpath($config['dir']); } $d = @mkdir($dir); return $d; }elseif($option == 'delete' || $option == 'del'){ //remove o diretório if(!$config['dir']){ exit('Nenhum diretório informado!'); }else{ $dir = realpath($config['dir']); } if(!is_dir($dir)){ exit("O diretório $dir não é um diretório válido!"); } $d = @rmdir($dir); return $d; }elseif($option == 'copy'){ //copia o diretório if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_dir($o)){ exit("A origem $o não é um diretório válido!"); } $c = @copy($o,$d); return $c; }elseif($option == 'move'){ //move o diretório if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_dir($o)){ exit("A origem $o não é um diretório válido!"); } $m = @rename($o,$d); return $m; }elseif($option == 'rename'){ //renomeia o diretório if(!$conf['from']){ exit('Origem não definida!'); }else{ $o = realpath($conf['from']); } if(!$conf['to']){ exit('Destino não definido!'); }else{ $d = realpath($conf['to']); } if(!is_file($o)){ exit("A origem $o não é um diretório válido!"); } $r = @rename($o,$d); return $r; }else{ exit("A opção $option é desconhecida!"); } } } ?>
Classe para conversões de data/hora em diversos formatos
Folha de Ponto, com datas móveis como Carnaval Sexta-Feira Santa e Corpus Christi
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta