Calsse eveFile: manipulação de arquivos
Publicado por EVERTON DA ROSA 27/12/2007
[ Hits: 6.965 ]
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!");
}
}
}
?>
evePHP: Classe para desenvolvimento PHP
WebUI: framework para criação de interfaces para Web
Leitura de planilhas com PhpSpreadsheet
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









