122
Files & File System Certificação PHP Criado por : Emerson Silva

Files e File System PHP (Português)

Embed Size (px)

Citation preview

Page 1: Files e File System PHP (Português)

Files & File System

Certificação PHP

Criado por : Emerson Silva

Page 2: Files e File System PHP (Português)

Introdução● Esse material foi criado com o objetivo pessoal de

revisar conceitos de PHP para o meu preparo e do time de TI que faço parte para a certificação ZCE 5.5 .

● Abordo definições teóricas e exemplos práticos para fixação dos tópicos relacionados à certificação.

● O material pode ser compatilhado desde que mantido , mencionado as devidas autorias e fontes de pesquisa no ultimo slide.

Page 3: Files e File System PHP (Português)

Files

● A manipulação de arquivos no PHP não possui pré-requisitos e nem bibliotecas acessórias para sua utilização.

● Há dois tipos principais de função de arquivo– Funções que trabalham com recursos(resources)

de arquivo . F*() - Ex : fopen()

– Funções que trabalham com um nome de arquivo .File*() - Ex : file_get_contents()

Page 4: Files e File System PHP (Português)

Resources

● Um resource é uma variável especial, que mantém uma referência a um recurso externo. – Resources são criados e usados por funções

especiais e eles mantém manipuladores especiais para arquivos abertos, conexões de bancos de dados, canvas de imagens.

https://secure.php.net/manual/pt_BR/resource.php

Page 5: Files e File System PHP (Português)

Ponteiros

● Um ponteiro em PHP é muito diferente de um ponteiro em C .

● Em linguagem C o ponteiro é uma posição física de memória enquanto que no PHP é um apelido em uma tabela simbólica. Em PHP , ponteiros também são denominados como referências.

● Referências PHP permitem fazer duas variáveis se referirem ao mesmo conteúdo.

http://www.vivaolinux.com.br/artigo/Referencias-ou-ponteiros-em-PHP

Page 6: Files e File System PHP (Português)

fclose()● fclose – Fecha um ponteiro de arquivo aberto.

– bool fclose ( resource $handle )

Onde :– handle : O ponteiro para o arquivo tem que ser válido e tem que

apontar para um arquivo aberto por fopen() ou fsockopen(). ● A função retorna True ou False.

https://secure.php.net/manual/pt_BR/function.fclose.php

Page 7: Files e File System PHP (Português)

Funções - fread()● fread – Leitura binary-safe de arquivo

– string fread ( resource $handle , int $length )

Onde :– handle : Um ponteiro de arquivo tipo resource tipicamente criado por fopen().– Length : Comprimento em bytes

A leitura é interrompida quando :● Length é atingido● EOF é atingido● um pacote tornou-se disponível (para network streams) ● 8192 bytes foram lidos (depois de abrir um stream)

● A função retorna a string lida ou FALSE em caso de erro.

https://secure.php.net/manual/pt_BR/function.fread.php

Page 8: Files e File System PHP (Português)

fopen()● fopen – Abre um arquivo ou URL.

– resource fopen ( string $filename , string $mode [, bool $use_include_path [, resource $context ]] )

● Onde :– Filename : Nome do arquivo ou caminho da URL.– Mode : Tipo de acesso ao recurso . Ex. 'r' – somente leitura – use_include_path : True se deseja busca o arquivo no include_path– Contexto : A partir da versão PHP 5 , é um conjunto de parâmetros empregados para

manipulação do fluxo com Streams–

● Retorna um resource de ponteiro de arquivo em caso de sucesso, ou FALSE em caso de erro.

http://php.net/manual/pt_BR/function.fopen.php

Page 9: Files e File System PHP (Português)

fopen()

Mode Descricao

r Abre somente para leitura; coloca o ponteiro do arquivo no começo do arquivo.

r+ Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.

w Abre somente para escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.

w+ Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.

a Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo.

a+ Abre para leitura e escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo.

x Cria e abre o arquivo somente para escrita; coloca o ponteiro no começo do arquivo. Se o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo.

x+ Cria e abre o arquivo para leitura e escrita; coloca o ponteiro no começo do arquivo. Se o arquivo já existir, a chamada a fopen() falhará, retornando FALSE e gerando um erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo.

Page 10: Files e File System PHP (Português)

fopen()● Exemplo : Imagine o arquivo webdictionary.txt com o conteúdo abaixo :

<b>Formato de Arquivos</b>

AJAX = Asynchronous JavaScript and XML

CSS = Cascading Style Sheets

HTML = Hyper Text Markup Language

PHP = PHP Hypertext Preprocessor

SQL = Structured Query Language

SVG = Scalable Vector Graphics

XML = EXtensible Markup Language

Page 11: Files e File System PHP (Português)

fopen()

<?php

$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");

echo fread($myfile,filesize("webdictionary.txt"));

fclose($myfile);

?>

http://www.s2tech.com.br/treinamento/exemplo_fopen.php

Page 12: Files e File System PHP (Português)

fgets()● fgets - Lê uma linha de um ponteiro de arquivo

– string fgets ( resource $handle [, int $length ] )● Onde :

– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por fopen() ou fsockopen() e ainda não fechado por fclose() .

– Length : A leitura termina quando length - 1 bytes tenham sido lidos, em uma quebra de linha (que é incluída no retorno), ou no final do arquivo (EOF), o que acontecer primeiro.

Se nenhum comprimento for especificado, a leitura do stream continuará até chegar ao final da linha.

● Retorna uma string de até length - 1 bytes lida do arquivo apontado por handle. Se der erro retorna False

https://secure.php.net/manual/pt_BR/function.fgets.php

Page 13: Files e File System PHP (Português)

fgetss()● fgetss – Similar à fgets() mas remove tags html e php.

– string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )● Onde :

– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por fopen() ou fsockopen() e ainda não fechado por fclose() .

– Length :Tamanho da informação a ser recebida.– allowable_tags : especificar as tags html que não devem ser removidas

● Retorna uma string de até length - 1 bytes lida do arquivo apontado por handle com todo html e php removido . Se der erro retorna False

http://php.net/manual/pt_BR/function.fgetss.php

Page 14: Files e File System PHP (Português)

fgetss() <?php

$file = fopen("webdictionary.txt", "r");

//Exibe a linha do arquivo até o final

while(! feof($file))

{

echo fgetss($file). "<br />";

}

fclose($file);

?>

http://www.s2tech.com.br/treinamento/exemplo_fgetss.php

Page 15: Files e File System PHP (Português)

feof()● feof - Testa pelo fim-de-arquivo (eof) em um ponteiro de

arquivo.– bool feof ( resource $handle )

● Onde :– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo

aberto por fopen() ou fsockopen() e ainda não fechado por fclose() .● Retorna TRUE se o ponteiro estiver no fim do arquivo (eof) ou um

erro ocorrer (incluindo um limite de tempo de socket). Caso contrário retorna FALSE.

https://secure.php.net/manual/pt_BR/function.feof.php

Page 16: Files e File System PHP (Português)

feof() <?php

$file = fopen("webdictionary.txt", "r");

//Exibe a linha do arquivo até o final

while(! feof($file))

{

echo fgets($file). "<br />";

}

fclose($file);

?>

http://www.s2tech.com.br/treinamento/exemplo_feof.php

Page 17: Files e File System PHP (Português)

fgetc()● fgetc – Lê um caracter de um ponteiro do arquivo.

– string fgetc ( resource $handle )● Onde :

– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por fopen() ou fsockopen() e ainda não fechado por fclose()

● Retorna uma string contendo um único caractere lido do ponteiro do arquivo passado por handle. Retorna FALSE em EOF.

http://php.net/manual/pt_BR/function.fgetc.php

Page 18: Files e File System PHP (Português)

fgetc()

<?php

$myfile = fopen("webdictionary.txt", "r") or die("Impossivel abrir o arquivo!");

// Envia um caracter até o final do arquivo

while(!feof($myfile)) {

echo fgetc($myfile);

}

fclose($myfile);

?>

http://www.s2tech.com.br/treinamento/exemplo_fgetc.php

Page 19: Files e File System PHP (Português)

fgetcsv()● fgetcsv – Lê uma linha de um ponteiro e a interpreta como campos

CSV(comma-separated values).– array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string

$enclosure [, string $escape ]]]] )● Onde :

– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por fopen() ou fsockopen() e ainda não fechado por fclose() .

– Length : Deve ser maior do que a maior linha (em caracteres) a ser encontrada no arquivo CSV.Se tornou opcional no PHP 5.

– Delimiter : Define o delimitador de campo (somente um caractere). O padrão é uma vírgula.– Enclosure : Define o caractere que cerca um campo (somente um caractere). O padrão é aspas duplas.– Escape : Define o caractere de escape (somente um caractere). O padrão é barra invertida (\)

● Retorna um array numérico contendo os campos lidos .

http://php.net/manual/pt_BR/function.fgetcsv.php

Page 20: Files e File System PHP (Português)

fgetcsv()● Usando o arquivo teste.csv que contém :

Nome,sobrenome,idade

Emerson,Silva,40

Jose,Reis,52

Luiz,Felipe,24

<?php

$row = 1;

$handle = fopen ("teste.csv","r");

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

$num = count ($data);

echo "<p> $num campos na linha $row: <br /></p>\n";

$row++;

for ($c=0; $c < $num; $c++) {

echo $data[$c] . "<br />\n";

}

}

fclose ($handle);

?>

http://www.s2tech.com.br/treinamento/exemplo_fgetcsv.php

Page 21: Files e File System PHP (Português)

fwrite()● fwrite – Escrita binary-safe em arquivos

– int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() escreve o conteúdo da string para o stream de arquivo apontado por handle.

● Onde :– Handle : Um ponteiro de arquivo tipo resource tipicamente criado por fopen().– string : A string a ser escrita.– length : Se o argumento comprimento for dado, a escrita irá parar depois que

comprimento bytes tenham sido escritos ou o final da string seja alcançado, o que vier primeiro.

● Retorna a quantidade de bytes escritos ou False em caso de erro.

http://php.net/manual/pt_BR/function.fwrite.php

Page 22: Files e File System PHP (Português)

fwrite() <?php

$file = fopen("test.txt","w");

echo fwrite($file,"Hello World. Testing!");

fclose($file);

?>

http://www.s2tech.com.br/treinamento/exemplo_fwrite.php

Page 23: Files e File System PHP (Português)

fputs()● fputs – Apelido/sinônimo para a função fwrite().

– int fputs ( resource $handle , string $string [, int $length ] )

Page 24: Files e File System PHP (Português)

fputcsv()● fputcsv – Formata a linha como CSV e a escreve em um

ponteiro de arquivo– int fputcsv ( resource $handle , array $fields [, string $delimiter [,

string $enclosure ]] )

Onde :– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por

fopen() ou fsockopen() e ainda não fechado por fclose().– fields : Uma array de valores– delimiter : Caracter unico delimitador na formação do csv , normalmente é , (virgula)– Enclosure : Caracter unico delimitador do campo , normalmente é “ (aspas duplas)

● Retorna o comprimento da string escrita, ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.fputcsv.php

Page 25: Files e File System PHP (Português)

fputcsv()<?php

$lista = array ( 'aaa,bbb,ccc,dddd',

'123,456,789',

'"aaa","bbb"');

$fp = fopen('arquivo.csv', 'w');

foreach ($lista as $linha) {

fputcsv($fp,$lista,',');

}

echo 'Dados gravados com sucesso !';

fclose($fp);

?>

http://www.s2tech.com.br/treinamento/exemplo_fputcsv.php

Page 26: Files e File System PHP (Português)

fflush()● fflush – Força a liberação do buffer para um arquivo

– bool fflush ( resource $handle )

Esta função força a escrita de toda saída cacheada no buffer do arquivo apontado pelo recurso handle.

Onde :– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo aberto por

fopen() ou fsockopen() e ainda não fechado por fclose().● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.fflush.php

Page 27: Files e File System PHP (Português)

fflush()

<?php

$file = fopen("test.txt","r+");

// Como usar

fflush($file);

?>

Page 28: Files e File System PHP (Português)

flock()● flock – Monitorar/gerenciar trava de arquivos

– bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

Onde :– Handle : O ponteiro de arquivo aberto . – Operation : Podem ser esses tipos de trava.

● LOCK_SH para obter trava compartilhada (reader).● LOCK_EX para obter trava exclusiva (writer).● LOCK_UN para liberar uma trava (compartilhada ou exclusiva).● LOCK_NB se você não quer flock() para bloquear quando está travando. (não suportado em

Windows)

– Wouldblock : O terceiro argumento opcional é usado como TRUE se a lock irá bloquear ● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/en/function.flock.php

Page 29: Files e File System PHP (Português)

flock()<?php

$file = fopen("test.txt","w+");

// Trava Exclusiva

if (flock($file,LOCK_EX))

{

fwrite($file,"Escreva algo");

// Liberação de trava

flock($file,LOCK_UN);

echo “Gravado com sucesso no arquivo”;

}

else

{

echo "Erro arquivo travado!";

}fclose($file);

?>

http://www.s2tech.com.br/treinamento/exemplo_flock.php

Page 30: Files e File System PHP (Português)

fpassthru()● fpassthru – Efetua a saída de todos os dados restantes

em um ponteiro de arquivo– int fpassthru ( resource $handle )

Lê até o fim do arquivo (EOF) do ponteiro de arquivo dado e imprime os resultados para a buffer de saída.

Onde :– Handle : O ponteiro de arquivo precisa ser válido, e apontar para um arquivo

aberto por fopen() ou fsockopen() e ainda não fechado por fclose().● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.fpassthru.php

Page 31: Files e File System PHP (Português)

fpassthru()

<?php

// abre o arquivo em modo binário

$name = 'updater.png';

$fp = fopen($name, 'rb');

// envia os headers

header("Content-Type: image/png");

header("Content-Length: ".filesize($name));

// manda a imagem e para o script

fpassthru($fp);

Exit;

?>

http://www.s2tech.com.br/treinamento/exemplo_fpassthru.php

Page 32: Files e File System PHP (Português)

fscanf()● fscanf – Interpreta a leitura de um arquivo de acordo com um formato

– mixed fscanf ( resource $handle , string $formato [, mixed &$... ] )

A função fscanf() é semelhante à sscanf(), mas usa como entrada um arquivo associado com o handle e interpreta a entrada de acordo com o formato especificado, o qual é descrito na documentação da sprintf().

Onde :– Handle : Um ponteiro de arquivo tipo resource tipicamente criado por fopen().– Formato : O formato especificado como descrito na documentação de sprintf(). – ... : Variáveis opcionais onde definir os valores.

● Retorna um array se nenhum opcional for informado . Se for informado o opcional o retorno dependerá do formato que foi definido .

http://php.net/manual/pt_BR/function.fscanf.php

Page 33: Files e File System PHP (Português)

fscanf()Arquivos users.txt

javier argonaut pe

hiroshi sculptor jp

robert slacker us

luigi florist it

<?php

$handle = fopen("users.txt", "r");

while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {

list ($name, $profession, $countrycode) = $userinfo;

echo "O nome é :".$name." , a profissao é : ".$profession." e o pais é : ".$countrycode."<br>";

}

fclose($handle);

?>

http://www.s2tech.com.br/treinamento/exemplo_fscanf.php

Page 34: Files e File System PHP (Português)

fseek()● fseek – Procura (seeks) em um ponteiro de arquivo– int fseek ( resource $handle , int $offset [, int $whence ] )

Modifica o indicador de posição do arquivo referenciado por handle. A nova posição, medida em bytes a partir do início do arquivo, é obtida ao adicionar offset à posição especificada por whence.

Onde :– Handle : Um ponteiro de arquivo tipo resource tipicamente criado por fopen().– offset : A posição. Para mover até uma posição anterior ao final do arquivo, você precisa passar um valor negativo no offset.– Whence : Os vValores de whence são:

SEEK_SET - Define a posição igual ao offset bytes.SEEK_CUR - Define a posição para a atual localização mais offset.SEEK_END - Define a posição para o final do arquivo mais offset.

Se whence não for especificado, é assumido que seja SEEK_SET.

● Em caso de sucesso, retorna 0; caso contrário, retorna -1. Observe que fazer um seek depois do fim do arquivo (EOF) não é considerado um erro.

http://php.net/manual/pt_BR/function.fseek.php

Page 35: Files e File System PHP (Português)

fseek()

<?php

$fp = fopen('arquivo.txt','r');

// lê alguns dados

$data = fgets($fp, 4096);

// move de volta para o inicio do arquivo

// o mesmo que rewind($fp);

fseek($fp, 0);

?>

http://www.s2tech.com.br/treinamento/exemplo_fseek.php

Page 36: Files e File System PHP (Português)

fstat()● fstat – Lê informações sobre um arquivo usando um

ponteiro de arquivo aberto– array fstat ( resource $handle )

Obtêm estatísticas do arquivo aberto pelo ponteiro de arquivos handle.

Onde :– Handle : Um ponteiro de arquivo tipo resource tipicamente criado por fopen().

● Retorna um array com as estatísticas de um arquivo.

http://php.net/manual/pt_BR/function.fstat.php

Page 37: Files e File System PHP (Português)

fstat()

<?php

// abre um arquivo

$fp = fopen("/etc/passwd", "r");

// colhe as estatísticas

$fstat = fstat($fp);

// fecha o arquivo

fclose($fp);

// imprime somente a parte de índices associativos

print_r(array_slice($fstat, 13));

?>

http://www.s2tech.com.br/treinamento/exemplo_fstat.php

Page 38: Files e File System PHP (Português)

ftell()● ftell – Retorna a posição de leitura/gravação do ponteiro do

arquivo– int ftell ( resource $handle )

Onde :– Handle : O ponteiro de arquivo precisa ser válido, e precisa apontar para um arquivo

aberto com sucesso por fopen() ou popen(). ftell() dá resultados indefinidos para streams no modo append (aberto com flag "a").

● Retorna a posição do ponteiro do arquivo referenciado por handle; i.e., sua posição no stream do arquivo.Se um erro ocorrer, retorna FALSE.

http://php.net/manual/pt_BR/function.ftell.php

Page 39: Files e File System PHP (Português)

ftell()<?php

// abre o arquivo e lê alguns dados

$fp = fopen("passwd", "r");

$data = fgets($fp, 12);

// onde nós estamos ?

echo ftell($fp); // 11

fclose($fp);

?>

http://www.s2tech.com.br/treinamento/exemplo_ftell.php

Page 40: Files e File System PHP (Português)

ftruncate()● ftruncate – Altera o tamanho de um arquivo a um

tamanho especificado.– bool ftruncate ( resource $handle , int $size )

Onde :– Handle : O ponteiro do arquivo que deve estar aberto para escrita.– Size : O tamanho desejado . Se menor haverá perda de arquivos , se for maior

será complementado com bytes nulo.

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.ftruncate.php

Page 41: Files e File System PHP (Português)

ftruncate()

<?php

$fp = fopen("/tmp/file.txt", "r+");

ftruncate($fp, 2);

fclose($fp);

?>

Page 42: Files e File System PHP (Português)

fnmatch()● fnmatch – Compara nome de arquivo com um padrão– bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

fnmatch() verifica se a string passada combina com o padrão de caracteres curingas do shell do Linux / Unix. Onde :– pattern : Caracteres curinga do Shell– string : A string testada. Esta função é especialmente útil para nomes de arquivo, mas também pode ser usada em

strings normais. – Flags : Referenciado no manual Unix e Linux como fnmatch(3)

● FNM_NOESCAPE : O caracter “\” passa a ser tratado como um caracter comum● FNM_PATHNAME: Torna a barra “/” como um caracter regular.● FNM_PERIOD : Definição do comportamento do “.” ● FNM_LEADING_DIR : Ignore ``/*'' após efetuar a busca de padrão . ● FNM_CASEFOLD : Habilita o Case-Sensitive

http://www.unix.com/man-page/netbsd/3/fnmatch/

● Retorna TRUE se combinar, FALSE do contrário.

http://php.net/manual/pt_BR/function.fnmatch.php

Page 43: Files e File System PHP (Português)

files()● files – Lê todo o arquivo para um array– array file ( string $filename [, int $flags [, resource $context ]] )

. Onde :– filename : Caminho até o arquivo– Flags : Referenciado no manual Unix e Linux como fnmatch(3)

● FILE_USE_INCLUDE_PATH : Procurar pelo arquivo no include_path. ● FILE_IGNORE_NEW_LINE: Não acrescentar a quebra de linha no final de cada elemento do array● FILE_SKIP_EMPTY_LINES : Ignorar linhas vazias ● FILE_TEXT : O arquivo é retornado na codificação UTF-8. Você pode especificar uma codificação diferente

criando um contexto personalizado. Esta constante não pode ser utilizada com FILE_BINARY. Esta flag está disponível apenas a partir do PHP 6.

● FILE_BINARY : O conteúdo é lido como binário. Esta é a opção padrão e não pode ser utilizada com FILE_TEXT. Esta flag está disponível apenas a partir do PHP 6.

– context : Um recurso de contexto criado com a função stream_context_create()

● Retorna o arquivo em um array. Cada elemento do array corresponde a uma linha no arquivo, ainda com a quebra de linha. Em caso de falha, file() retorna FALSE

http://php.net/manual/pt_BR/function.file.php

Page 44: Files e File System PHP (Português)

files()Para o arquivo denominado arquivolinha.txt e com uma linha em branco no meio.

AJAX = Asynchronous JavaScript and XML

CSS = Cascading Style Sheets

HTML = Hyper Text Markup Language

PHP = PHP Hypertext Preprocessor

SQL = Structured Query Language

SVG = Scalable Vector Graphics

XML = EXtensible Markup Language

Page 45: Files e File System PHP (Português)

files()<?php

// Usando o parâmetro de flags opcionais disponíveis desde o PHP 5

$trimmed = file('arquivolinha.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($trimmed as $line_num => $line) {

echo "Linha #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";

}

?>

http://www.s2tech.com.br/treinamento/exemplo_file.php

Page 46: Files e File System PHP (Português)

file_get_contents()● file_get_contents — Lê todo o conteúdo de um arquivo para uma string– string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int

$maxlen ]]]] )● Esta função é semelhante à file(), exceto que file_get_contents() retorna o arquivo em uma string,

começando a partir de offset até maxlen bytes

. Onde :– filename : Caminho até o arquivo– Flags : Implementado após versão 6 , antes disso era use_include_file

● FILE_USE_INCLUDE_PATH : Procura o arquivo nos diretórios include.● FILE_TEXT : Define o encoding do arquivo● FILE_BINARY : O arquivo lido em binário e não opera com o FILE_TEXT.

– Context : Contexto implementado com Stream.– Offset : O ponto onde a leitura deve começar.– MaxLen : Comprimento máximo dos dados lidos

● A função retorna os dados lidos ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.file-get-contents.php

Page 47: Files e File System PHP (Português)

file_get_contents()<?php

echo file_get_contents("arquivo.txt");

?>

http://www.s2tech.com.br/treinamento/exemplo_file_get_content.php

Page 48: Files e File System PHP (Português)

file_put_contents()● file_put_contents — Escreve uma string para um arquivo

– int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] )● Esta função é semelhante à file(), exceto que file_get_contents() retorna o arquivo em uma string,

começando a partir de offset até maxlen bytes

. Onde :– filename : Caminho até o arquivo– Data : Os dados a serem escritos. Pode ser uma string, um array ou um recurso stream – Flags : Implementado após versão 6 , antes disso era use_include_file

● FILE_USE_INCLUDE_PATH : Procura o arquivo nos diretórios include.● FILE_APPEND : Se o arquivo já existir, acrescenta os dados ao arquivo ao invés de sobrescrevê-lo. ● LOCK_EX : Obtem uma trava exclusiva no arquivo enquanto escreve● FILE_TEXT : Define o encoding do arquivo● FILE_BINARY : O arquivo lido em binário e não opera com o FILE_TEXT.

– Context : Contexto implementado com Stream.– A função retorna a quantidade de bytes que foi escrita no arquivo ou FALSE em caso de falha

http://php.net/manual/pt_BR/function.file-put-contents.php

Page 49: Files e File System PHP (Português)

file_put_contents()<?php

echo file_put_contents("arquivo.txt","Industria Fox");

?> http://www.s2tech.com.br/treinamento/exemplo_file_put_content.php

Page 50: Files e File System PHP (Português)

filesize()● filesize — Lê o tamanho do arquivo

– int filesize ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o tamanho do arquivo em bytes, ou FALSE (e gera um erro de nível E_WARNING) no caso de um erro. – Em plataformas 32 bits , filesize() pode retornar resultados inesperados

para arquivos que sejam maiores que 2 Gb. Para arquivos entre 2 Gb e 4 Gb você pode resolver esse problema utilizando sprintf("%u", filesize($file)).

http://php.net/manual/pt_BR/function.filesize.php

Page 51: Files e File System PHP (Português)

filesize()

<?php

$filename = 'arquivolinha.txt';

echo $filename . ': ' . filesize($filename) . ' bytes';

?>http://www.s2tech.com.br/treinamento/exemplo_filesize.php

Page 52: Files e File System PHP (Português)

filetype()● filetype — Lê o tipo do arquivo

– string filetype ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o tipo do arquivo. Os valores possíveis são fifo, char, dir, block, link, file, socket e unknown (desconhecido).

– Retorna FALSE se ocorrer algum erro. filetype() também produzirá uma mensagem E_NOTICE se a chamada stat falhar ou se o tipo do arquivo for desconhecido.

http://php.net/manual/pt_BR/function.filetype.php

Page 53: Files e File System PHP (Português)

filetype()

<?php

echo filetype('arquivolinha.txt'); // file

echo '<br>';

echo filetype('../treinamento/'); // dir

?>http://www.s2tech.com.br/treinamento/exemplo_filetype.php

Page 54: Files e File System PHP (Português)

fileperms()● fileperms — Lê as permissões do arquivo

– int fileperms ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna as permissões do arquivo, ou FALSE em caso de erro.

http://php.net/manual/pt_BR/function.fileperms.php

Page 55: Files e File System PHP (Português)

fileperms()<?php

echo substr(sprintf('%o', fileperms('../treinamento/')), -4);

echo '<br>';

echo substr(sprintf('%o', fileperms('arquivolocal.txt')), -4);

?>

http://www.s2tech.com.br/treinamento/exemplo_fileperms.php

Page 56: Files e File System PHP (Português)

fileowner()● fileowner — Lê o dono do arquivo

– int fileowner ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o ID do usuário (user ID) do dono (owner) do arquivo, ou FALSE caso um erro. O ID do usuário é retornado no formato numérico, use posix_getpwuid() para obter o username do usuário.

● http://php.net/manual/pt_BR/function.fileowner.php

Page 57: Files e File System PHP (Português)

fileowner()<?php

$filename = 'arquivolinha.txt';

print_r(posix_getpwuid(fileowner($filename)));

?>

http://www.s2tech.com.br/treinamento/exemplo_fileowner.php

Page 58: Files e File System PHP (Português)

filegroup()● filegroup — Lê o grupo do arquivo

– int filegroup ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o group ID do arquivo, ou FALSE no caso de um erro. O group ID é retornado em um formato numérico. Use posix_getgrgid() para resolver para o nome do grupo.

– Em caso de falha, FALSE é retornado.

http://php.net/manual/pt_BR/function.filegroup.php

Page 59: Files e File System PHP (Português)

filegroup()<?php

$filename = 'arquivolinha.txt';

print_r(posix_getgrgid(filegroup($filename)));

?>

http://www.s2tech.com.br/treinamento/exemplo_filegroup.php

Page 60: Files e File System PHP (Português)

file_exists()● file_exists — Checa se um arquivo ou diretório existe

– bool file_exists(string $filename )

Onde :

– filename : Caminho para o arquivo e diretório.● No Windows,use //computername/share/filename ou \\\\computername\share\filename

para checar arquivos em compartilhamentos de rede.

● Retorna TRUE se o arquivo ou diretório especificado por filename existe; FALSE caso contrário.

http://php.net/manual/pt_BR/function.file-exists.php

Page 61: Files e File System PHP (Português)

fileatime()● fileatime — Obtém o último horário de acesso do

arquivo– int fileatime ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna a hora do ultimo acesso ao arquivo . Em caso de erro retorna FALSE . Devolve no formato de data UNIX.

http://php.net/manual/pt_BR/function.fileatime.php

Page 62: Files e File System PHP (Português)

fileatime()<?php

$filename = 'arquivolinha.txt';

if (file_exists($filename)) {

echo "$filename teve o ultimo acesso em: " . date ("F d Y H:i:s.", fileatime($filename));

}

?>

http://www.s2tech.com.br/treinamento/exemplo_fileatime.php

Page 63: Files e File System PHP (Português)

filemtime()● filemtime — Obtém a hora da ultima modificação

do arquivo.– int filemtime ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna a hora da ultima modificação do arquivo . Em caso de erro retorna FALSE . Devolve no formato de data UNIX.

http://php.net/manual/en/function.filemtime.php

Page 64: Files e File System PHP (Português)

filemtime()<?php

$filename = 'arquivolinha.txt';

if (file_exists($filename)) {

echo "$filename foi modicado em : " . date ("F d Y H:i:s.", filemtime($filename));

}

?>

http://www.s2tech.com.br/treinamento/exemplo_filemtime.php

Page 65: Files e File System PHP (Português)

inode● Definição

– Por que o meu pendrive de 1.5G mostra disponível apenas 1.38G, ou mais, o recém adquirido HD de 80G disponibiliza um pouco menos, por volta de 78G, ou mesmo um disquete de 1.44M mas só dispõe 1.36M. Afinal, pra onde foram esses bytes que na hora de venda anunciam, mas quando vamos usar, não estão disponíveis ?

Esses bytes não sumiram e muito menos você foi enganado pelo vendedor, fazendo propaganda enganosa. Esse espaço "invisível" é reservado para um tipo especial de estrutura de dados chamado INODE.

– Essa estrutura é responsável por conter informações básicas sobre seus arquivos e pastas, como permissões de acesso, identificação dos donos dos arquivos, data e hora do último acesso e alterações, tamanho e o mais importante, os famosos ponteiros para o arquivo em si. De modo geral, o INODE é a identidade de um arquivo ou diretório, é uma identificação única para ele.

http://www.vivaolinux.com.br/artigo/Voce-sabe-o-que-e-INODE

Page 66: Files e File System PHP (Português)

fileinode()● fileinode — Lê o inode do arquivo

– int fileinode ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o número do inode do arquivo, ou FALSE em caso de um erro.

http://php.net/manual/pt_BR/function.fileinode.php

Page 67: Files e File System PHP (Português)

fileinode()<?php

$filename = 'arquivolinha.txt';

$inode = fileinode($filename);

echo "O inode do $filename é : ".$inode;

?>

http://www.s2tech.com.br/treinamento/exemplo_fileinode.php

Page 68: Files e File System PHP (Português)

filectime()● filectime — Obtém o tempo de modificação do

inode do arquivo– int filectime ( string $filename )

. Onde :– filename : Caminho até o arquivo

● Retorna o tempo que o arquivo foi modificado, ou FALSE no caso de um erro. O tempo é retornado como um Unix timestamp.

http://php.net/manual/pt_BR/function.filectime.php

Page 69: Files e File System PHP (Português)

filectime()<?php

$filename = 'arquivolinha.txt';

if (file_exists($filename)) {

echo "$filename foi modificado em: " . date ("F d Y H:i:s.", filectime($filename));

}

?>

http://www.s2tech.com.br/treinamento/exemplo_filectime.php

Page 70: Files e File System PHP (Português)

File System● O PHP possui um conjunto de funções própria para

operação em diretórios e estrutura de arquivos sendo denominadas como funções FileSystem .

● Para suporte LFS (Arquivos Grandes) no Linux, então você precisa ter uma versão recente da glibc e você precisa compilar o PHP com as seguintes opções do compilador: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

Page 71: Files e File System PHP (Português)

File System

Nome Padrão Descricao Modificavel

allow_url_fopen 1 Permite a função fopen() trabalhar com URL

PHP_INI_SYSTEM

allow_url_include 0 Permite o uso de wrapper URL PHP_INI_ALL

user_agent NULL Define o usuário que fará envios PHP_INI_ALL

default_socket_timeout 60 Define o tempo de timeout em segundos

PHP_INI_ALL

from “” Define a senha anonima de ftp PHP_INI_ALL

auto_detect_line_endings

0 Quando tiver 1 analisa nas funções file() , fgets a origem dos dados e vê se são usados no DOS , Windows , Unix e MAC

PHP_INI_ALL

As funções de File System são afetadas pelos parâmetros registrados no php.ini

Page 72: Files e File System PHP (Português)

disk_total_space()● disk_total_space — Retorna o tamanho total do

diretório– float disk_total_space ( string $directory )

. Onde :– directory : Caminho do diretório ou partição de disco.

● Retorna o número total de bytes como um float.

http://php.net/manual/pt_BR/function.disk-total-space.php

Page 73: Files e File System PHP (Português)

disk_total_space()<?php

// $df contém o numero total de bytes disponíveis em "/"

$df = disk_total_space("/home/s2tec894/public_html/treinamento");

$df = $df / 1099511000000; // Divisão para chegar a Tera

echo "Tamanho em terabytes(TB) da unidade : $df";

?>

http://www.s2tech.com.br/treinamento/exemplo_ds.php

Page 74: Files e File System PHP (Português)

disk_free_space()● disk_free_space — Retorna o espaço disponível

no diretório– float disk_free_space ( string $directory )

. Onde :– directory : Caminho do diretório ou partição de disco.

● Retorna o número total de bytes disponiveis como um float.

http://php.net/manual/pt_BR/function.disk-free-space.php

Page 75: Files e File System PHP (Português)

disk_free_space()<?php

// $df contém o numero total de bytes disponíveis em "/"

$df = disk_free_space("/home/s2tec894/public_html/treinamento");

$df = $df / 1099511000000; // Divisão para chegar a Tera

echo "Espaco disponivel em terabytes(TB) da unidade : $df";

?>

http://www.s2tech.com.br/treinamento/exemplo_df.php

Page 76: Files e File System PHP (Português)

mkdir()● mkdir — Cria um diretório

– bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )

. Onde :– pathname : Caminho do diretório.– Mode : O modo padrão é 0777, que significa o acesso mais abrangente

possível. – Recursive : O padrão é FALSE. – Context : Implementado com Stream.

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.mkdir.php

Page 77: Files e File System PHP (Português)

rmdir()● rmdir — Remove um diretório

– bool rmdir ( string $dirname [, resource $context ] )● Tenta remover o diretório com o nome de dirname.● O diretório tem que estar vazio e as permissões relevantes

autorizarem a esta operação

. Onde :– dirname : Caminho para o diretório.– context : Utilização com Streams

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.rmdir.php

Page 78: Files e File System PHP (Português)

is_dir()● is_dir — Diz se o caminho é um diretório

– bool is_dir ( string $filename )

. Onde :– filename : Caminho para o diretório. Se filename é um link

simbólico ou hard link então o link será resolvido e validado● Retorna TRUE se o nome do arquivo existe e é um

diretório, FALSE caso contrário.

http://php.net/manual/pt_BR/function.is-dir.php

Page 79: Files e File System PHP (Português)

is_dir()

Imagine a estrutura de pastas abaixo no servidor :

Page 80: Files e File System PHP (Português)

is_dir()<?php

var_dump(is_dir('arquivolinha.txt'));

var_dump(is_dir('pasta'));

var_dump(is_dir('..')); // um diretório acima

?>http://www.s2tech.com.br/treinamento/exemplo_isdir.php

Page 81: Files e File System PHP (Português)

getcwd()● getcwd — Obtém o diretório atual

– string getcwd ( void )

● Retorna o diretório atual em sucesso, ou FALSE em falha.

http://php.net/manual/pt_BR/function.getcwd.php

Page 82: Files e File System PHP (Português)

chdir()● chdir — Muda o diretório atual

– bool chdir ( string $directory ). Onde :

– directory : O novo caminho para o diretório.● Retorna TRUE em caso de sucesso ou FALSE em caso

de falha.

http://php.net/manual/pt_BR/function.chdir.php

Page 83: Files e File System PHP (Português)

chdir()<?php

// diretório atual

echo getcwd() . "\n";

chdir('pasta');

// diretório atual

echo "<br>".getcwd() . "\n";

?>

http://www.s2tech.com.br/treinamento/exemplo_chdir.php

Page 84: Files e File System PHP (Português)

dir()● dir — Retorna uma instância da classe Diretório

– Directory dir ( string $directory [, resource $context ] )

. Onde :– directory : O novo caminho para o diretório.– context : Empregado com Stream

● Retorna uma instância de Directory, ou NULL com os parâmetros errados, ou FALSE caso haja outro erro.

http://php.net/manual/pt_BR/function.dir.php

Page 85: Files e File System PHP (Português)

dir()<?php

$d = dir('/home/s2tec894/public_html');

echo "Handle: " . $d->handle . "<br>";

echo "Caminho: " . $d->path . "<br>";

while (false !== ($entry = $d->read())) {

echo $entry."<br>";

}

$d->close();

?>

http://www.s2tech.com.br/treinamento/exemplo_dir.php

Page 86: Files e File System PHP (Português)

dirname()● dirname — Retorna o diretório de um

caminho/path– string dirname ( string $path )

. Onde :– path : Um caminho

● Retorna o nome do diretório. A string retornada é o path com qualquer /componente adjacente removido

http://php.net/manual/pt_BR/function.dirname.php

Page 87: Files e File System PHP (Português)

dirname()<?php

$path = "/public_html/treinamento";

$file = dirname ($path);

?>

http://www.s2tech.com.br/treinamento/exemplo_dirname.php

Page 88: Files e File System PHP (Português)

glob()● glob — Acha caminhos que combinam com um padrão

– array glob ( string $pattern [, int $flags = 0 ] )

– A função glob() procura por todos os caminhos que combinem com o padrão pattern

● Onde :– Pattern : Padrão de busca . Não considera ~– Flags : somente validas . Ver proximo slide !

– Retorna um array contendo os arquivos/diretórios que combinaram, um array vazio se nenhum arquivo combinou ou FALSE em caso de erro.

http://php.net/manual/pt_BR/function.glob.php

Page 89: Files e File System PHP (Português)

glob()● Abaixo as Flags que podem ser empregadas na função glob().

– GLOB_MARK - Acrescenta uma barra a cada diretório retornado

– GLOB_NOSORT - Retorna os arquivos conforme eles aparecem no diretório (sem ordenação). Quando esta flag não é utilizada os caminhos são ordenados alfabeticamente.

– GLOB_NOCHECK - Retorna o padrão da busca se nenhuma combinação de arquivo for encontrada

– GLOB_NOESCAPE - Barras invertidas não escapam metacaracteres.

– GLOB_BRACE - Expande {a,b,c} para combinar com 'a', 'b' ou 'c'

– GLOB_ONLYDIR - Retorna apenas diretórios que combinem com o padrão

– GLOB_ERR - Pára em erros de leitura (como diretórios que não podem ser lidos), por padrão os erros são ignorados.

Page 90: Files e File System PHP (Português)

glob()<?phpforeach (glob("*.php") as $arquivo) {

echo "O tamanho do $arquivo é : " . filesize($arquivo) . "<br>";

}

?>http://www.s2tech.com.br/treinamento/exemplo_glob.php

Page 91: Files e File System PHP (Português)

chmod()● chmod — Modifica as permissões do arquivo

– bool chmod ( string $filename , int $mode )

. Onde :– filename : Caminho do diretório.– Mode : Note que modo não é necessariamente um número octal, então

strings (como "g+w") não funcionarão. Para garantir que a operação seja bem sucedida é necessário prefixar modo com zero (0)

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.chmod.php

Page 92: Files e File System PHP (Português)

chown()● chown — Modifica o dono do arquivo

– bool chown ( string $filename , mixed $user )

. Onde :– filename : Caminho do arquivo / diretório.– user : O nome do usuário ou o número .

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.chown.php

Page 93: Files e File System PHP (Português)

chgrp()● chgrp — Modifica o grupo do arquivo

– bool chgrp ( string $filename , mixed $group )

. Onde :– filename : Caminho do arquivo / diretório.– group : O nome do grupo ou o número .

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.chgrp.php

Page 94: Files e File System PHP (Português)

is_file()● is_file — Verifica se é um arquivo regular.

– bool is_file ( string $filename)

. Onde :– filename : Caminho do arquivo / diretório.

● Retorna TRUE se o nome do arquivo existe e é um arquivo regular, FALSE caso contrário.

http://php.net/manual/pt_BR/function.is-file.php

Page 95: Files e File System PHP (Português)

is_file()<?php

var_dump(is_file('arquivolinha.txt'));

echo '<br>';

var_dump(is_file('/public_html/treinamento/')) ;

?>http://www.s2tech.com.br/treinamento/exemplo_isfile.php

Page 96: Files e File System PHP (Português)

is_executable()● is_executable — Verifica se é um arquivo executavel.

– bool is_executable ( string $filename)

. Onde :– filename : Caminho do arquivo.

● Tornou-se válido no Windows a partir do php 5.

● Retorna TRUE se o nome do arquivo existe e é executável, ou FALSE em erro.

http://php.net/manual/pt_BR/function.is-executable.php

Page 97: Files e File System PHP (Português)

is_executable()<?php

$file = 'arquivolinha.txt';

if(is_executable($file)) {

echo $file.' é executável';

} else {

echo $file.' não é executável';

}

?>

http://www.s2tech.com.br/treinamento/exemplo_isexecutable.php

Page 98: Files e File System PHP (Português)

copy()● copy — Copia arquivo

– bool copy ( string $source , string $dest [, resource $context ] )

. Onde :– source : Origem .– Dest : Destino– Context : Contexto empregado com Stream

Faz uma cópia do arquivo source para dest. ● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.copy.php

Page 99: Files e File System PHP (Português)

copy()<?php

$file = 'arquivolinha.txt';

$newfile = 'novo_arquivolinha.txt';

if (copy($file, $newfile)) {

echo "Gerado a copia denominada : $newfile...\n";

}

?>

http://www.s2tech.com.br/treinamento/exemplo_copy.php

Page 100: Files e File System PHP (Português)

rename()● rename — Renomeia um arquivo ou diretório

– bool rename ( string $oldname , string $newname [, resource $context ] )

Recomendado o seu uso também para mover arquivos.

. Onde :– oldname : Nome antigo .– newname : Nome novo– Context : Contexto empregado com Stream

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.rename.php

Page 101: Files e File System PHP (Português)

rename()<?php

$oldname = 'novo_arquivolinha.txt';$newname ='/home/s2tec894/public_html/treinamento/pasta/arquivolinha.txt';

if (rename($oldname, $newname)) {

echo "Movido o $oldname para $newname";

}

?>

http://www.s2tech.com.br/treinamento/exemplo_rename.php

Page 102: Files e File System PHP (Português)

basename()● basename — Retorna a parte nome do arquivo do

caminho/path– string basename ( string $path [, string $suffix ] )

. Onde :– path : Caminho completo até o aqruivo.– Suffix : Sufixo que deseja considerar no caso de arquivos

● Retorna o nome do arquivo sem a extensão.

http://php.net/manual/pt_BR/function.basename.php

Page 103: Files e File System PHP (Português)

basename()<?phpecho 'Nome do Arquivo é :' .basename('/public_html/treinamento/arquivolinha.txt','.txt').

'<br> Pasta : '.basename('/public_html/treinamento/');

?>http://www.s2tech.com.br/treinamento/exemplo_basename.php

Page 104: Files e File System PHP (Português)

unlink()● unlink — Apaga um arquivo

– int unlink ( string $filename [, resource $context ] ). Onde :

– filename : Caminho para o arquivo.– context : Utilização com Streams

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.unlink.php

Page 105: Files e File System PHP (Português)

delete()● delete — Não existe em PHP

– O php.net mantém uma sessão a respeito para orientar quem busca como apagar arquivos(unlink) e variáveis(unset)

http://php.net/manual/pt_BR/function.delete.php

Page 106: Files e File System PHP (Português)

stat()● stat — Obtem informações sobre um arquivo

– array stat ( string $filename ). Onde :

– filename : Caminho para o arquivo– lstat() é idêntica a stat() exceto que ela foi baseada no status de

links simbólicos.

http://php.net/manual/pt_BR/function.stat.php

Page 107: Files e File System PHP (Português)

stat()Índice Numérico Índice Associativo

(desde o PHP 4.0.6)

Descrição

0 dev número do dispositivo

1 ino número do inode

2 mode modo de proteção do inode

3 nlink número de links

4 uid userid do proprietário

5 gid groupid do proprietário

6 rdev tipo de dispositivo

7 size tamanho em bytes

8 atime hora do último acesso (Unix timestamp)

9 mtime hora da última modificação (Unix timestamp)

10 ctime hora da última modificação do inode (Unix timestamp)

11 blksize tamanho do bloco no sistema de arquivos

12 blocks número de blocos alocados

Page 108: Files e File System PHP (Português)

stat()<?php

$arquivo = stat(“arquivolinha.txt”);

var_dump($arquivo);

?>

http://www.s2tech.com.br/treinamento/exemplo_stat.php

Page 109: Files e File System PHP (Português)

Outros Exemplos<?php

// Cria o diretório

mkdir("/treinamento/teste/", 0700);

// Escrita e leitura para o proprietario, nada ninguem mais

chmod ("/treinamento/teste", 0600);

// Muda o proprietário do arquivo

chown("/treinamento/teste", “root”);

//Apaga arquivos

unlink(“/treinamento/teste/*.*”)

// Apaga diretorio

rmdir(“/treinamento/teste”);

?>

Page 110: Files e File System PHP (Português)

links● Os links em Linux podem ser de dois tipos :

– Simbólicos : No link tipo simbólico, o link é um arquivo especial de disco do tipo link, que tem como conteúdo o caminho para chegar até o arquivo alvo.

– Características:

● Pode-se fazer links simbólicos em arquivos e diretórios;● O link simbólico e o arquivo alvo não precisam estar na mesma partição de disco;● Se o link simbólico for apagado/movido. Somente o link será apagado/movido;● Qualquer usuário pode criar/desfazer um link simbólico (respeitando as permissões).

Page 111: Files e File System PHP (Português)

links● Hard Link : No link tipo hardlink, o link é apontado para o

mesmo inode do arquivo alvo, sendo assim, os dois arquivos serão o mesmo. – Características:

– Não é possível fazer um hardlink para um diretório;– Somente é possível fazer hardlink em arquivos que estejam em uma mesma

partição de disco;– Se o hardlink for apagado/movido, você estará apagando/movendo o arquivo alvo;– Somente o usuário root pode criar/desfazer hardlinks.

http://www.vivaolinux.com.br/dica/Link-simbolico-e-hardlink

Page 112: Files e File System PHP (Português)

link()● link — Criando um hard link

– bool link ( string $target , string $link )● Onde :

– Target : Alvo do link – Link : Nome do Link

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.link.php

Page 113: Files e File System PHP (Português)

symlink()● symlink — Criando um link simbólico

– bool symlink ( string $target , string $link )● Onde :

– Target : Alvo do link – Link : Nome do Link

● Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

http://php.net/manual/pt_BR/function.symlink.php

Page 114: Files e File System PHP (Português)

readlink()● readlink — Retornar o target de um link

simbólico– string readlink ( string $path )

● Onde :– Path : Caminho para o link

● Retorna o conteúdo do caminho do link simbólico ou FALSE em erro.

http://php.net/manual/pt_BR/function.symlink.php

Page 115: Files e File System PHP (Português)

is_link()● is_link — Diz se o arquivo é um link simbólico

– bool is_link ( string $filename )● Onde :

– filename : O caminho para o arquivo. ● Retorna TRUE se o nome do arquivo existe e se é um

link simbólico, FALSE caso contrário.

http://php.net/manual/pt_BR/function.is-link.php

Page 116: Files e File System PHP (Português)

SPL● SPL — Standard PHP Library

– Standard PHP Library ou SPL é uma coleção de classes e interfaces que servem para resolver problemas padrões no mundo PHP, seu principal objetivo é prover interfaces que permita os desenvolvedores fazer um uso completo das vantagens da programação orientado a objetos.

Page 117: Files e File System PHP (Português)

SPL● Algo que aparece muito forte na SPL é a forma como ela

trabalha com a organização e a interação de dados, ela nos fornece outras formas além de arrays para guardar coleções, fazer acesso avançado a arrays, acesso avançado a diretórios e arquivos e outros, e principalmente, otimizando o consumo de memória e de uma forma OO.

● Não há necessidade de configurar nada e nem instalar para uso da SPL que está presente desde o PHP

http://php.net/manual/pt_BR/book.spl.php

Page 118: Files e File System PHP (Português)

SPL<?php

$arr = array("Banana", "Abacaxi", "Abacate", "Morango");

$iter = new ArrayIterator($arr);

// Exibe o array na tela

foreach ($iter as $key => $value) {

echo $key . ": " . $value . "<br>";

}

$iter->rewind();

echo 'O primeiro - '. $iter->current();

echo '<br>';

$iter->next();

echo 'O atual - '. $iter->current();

?>

http://www.s2tech.com.br/treinamento/exemplo_splinterator.php

Page 119: Files e File System PHP (Português)

SPL● Para uso com arquivos temos as seguintes

classes :– SplFileInfo

http://php.net/manual/pt_BR/class.splfileinfo.php

– SplFileObjecthttp://php.net/manual/pt_BR/class.splfileobject.php

– SplTempFileObject http://php.net/manual/pt_BR/class.spltempfileobject.php

Page 120: Files e File System PHP (Português)

SPL<?php

$fileinfo = new SplFileInfo('teste_spl.txt');

if ($fileinfo->isWritable()) {

$fileobj = $fileinfo->openFile('a');

$arquivo = $fileobj->fwrite("Inserir esse exemplo de texto \n");

echo "Foram inseridos $arquivo caracteres";

}

?>

http://www.s2tech.com.br/treinamento/exemplo_splfileinfo.php

Page 121: Files e File System PHP (Português)

Quem sou eu ?

● Emerson Rodrigues da Silva– Support Master e

Desenvolvedor na Industria Fox

– Twitter : @emerson_rsilva

[email protected]

Page 122: Files e File System PHP (Português)

Fontes● Sites empregados como referência :

– www.php.net

– www.vivaolinux.com.br

– www.w3schools.com– http://phpsp.org.br/spl-menos-programacao-orientado-a-arrays/