Calsse eveFile: manipulação de arquivos
Publicado por EVERTON DA ROSA 27/12/2007
[ Hits: 6.923 ]
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!");
}
}
}
?>
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (16)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









