SlideShare a Scribd company logo
1 of 122
Download to read offline
Files & File System
Certificação PHP
Criado por : Emerson Silva
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.
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()
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
fwrite()
<?php
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
http://www.s2tech.com.br/treinamento/exemplo_fwrite.php
fputs()
● fputs – Apelido/sinônimo para a função fwrite().
– int fputs ( resource $handle , string $string [, int
$length ] )
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
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
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
fflush()
<?php
$file = fopen("test.txt","r+");
// Como usar
fflush($file);
?>
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
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
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
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
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
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, "%st%st%sn")) {
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
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
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
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
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
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
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
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
ftruncate()
<?php
$fp = fopen("/tmp/file.txt", "r+");
ftruncate($fp, 2);
fclose($fp);
?>
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
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
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
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
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
file_get_contents()
<?php
echo file_get_contents("arquivo.txt");
?>
http://www.s2tech.com.br/treinamento/exemplo_file_get_content.php
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
file_put_contents()
<?php
echo file_put_contents("arquivo.txt","Industria Fox");
?>
http://www.s2tech.com.br/treinamento/exemplo_file_put_content.php
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
filesize()
<?php
$filename = 'arquivolinha.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';
?>
http://www.s2tech.com.br/treinamento/exemplo_filesize.php
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
filetype()
<?php
echo filetype('arquivolinha.txt'); // file
echo '<br>';
echo filetype('../treinamento/'); // dir
?>
http://www.s2tech.com.br/treinamento/exemplo_filetype.php
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
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
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
fileowner()
<?php
$filename = 'arquivolinha.txt';
print_r(posix_getpwuid(fileowner($filename)));
?>
http://www.s2tech.com.br/treinamento/exemplo_fileowner.php
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
filegroup()
<?php
$filename = 'arquivolinha.txt';
print_r(posix_getgrgid(filegroup($filename)));
?>
http://www.s2tech.com.br/treinamento/exemplo_filegroup.php
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 computernamesharefilename
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
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
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
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
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
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
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
fileinode()
<?php
$filename = 'arquivolinha.txt';
$inode = fileinode($filename);
echo "O inode do $filename é : ".$inode;
?>
http://www.s2tech.com.br/treinamento/exemplo_fileinode.php
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
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
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
File System
Nome Padrão Descricao Modificavel
allow_url_fopen 1 Permite a função fopen() trabalhar
com URL
PHP_INI_SYSTE
M
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_endin
gs
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
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
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
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
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
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
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
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
is_dir()
Imagine a estrutura de pastas abaixo no servidor :
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
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
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
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
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
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
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
dirname()
<?php
$path = "/public_html/treinamento";
$file = dirname ($path);
?>
http://www.s2tech.com.br/treinamento/exemplo_dirname.php
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
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.
glob()
<?php
foreach (glob("*.php") as $arquivo) {
echo "O tamanho do $arquivo é : " . filesize($arquivo) . "<br>";
}
?>
http://www.s2tech.com.br/treinamento/exemplo_glob.php
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
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
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
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
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
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
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
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
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
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
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
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
basename()
<?php
echo '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
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
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
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
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
stat()
<?php
$arquivo = stat(“arquivolinha.txt”);
var_dump($arquivo);
?>
http://www.s2tech.com.br/treinamento/exemplo_stat.php
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”);
?>
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).
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
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
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
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
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
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.
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
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
SPL
● Para uso com arquivos temos as seguintes
classes :
– SplFileInfo
http://php.net/manual/pt_BR/class.splfileinfo.php
– SplFileObject
http://php.net/manual/pt_BR/class.splfileobject.php
– SplTempFileObject
http://php.net/manual/pt_BR/class.spltempfileobject.php
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
Quem sou eu ?
● Emerson Rodrigues
da Silva
– Support Master e
Desenvolvedor na Industria
Fox
– Twitter : @emerson_rsilva
– emerson.rodsilva@gmail.com
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/

More Related Content

What's hot

Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básicoCezar Souza
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançadoThiago Carlos
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHPPaulo Dayvson
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxoFrederico Madeira
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHPHelton Ritter
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPClayton de Almeida Souza
 
Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoAlex Camargo
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à ShellscriptVinícius Hax
 

What's hot (20)

Aula 10 semana
Aula 10 semanaAula 10 semana
Aula 10 semana
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Aula 11 semana
Aula 11 semanaAula 11 semana
Aula 11 semana
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Slides do cuso_php
Slides do cuso_phpSlides do cuso_php
Slides do cuso_php
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Curso de php do básico ao avançado
Curso de php do básico ao avançadoCurso de php do básico ao avançado
Curso de php do básico ao avançado
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxo
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHP
 
Introdução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHPIntrodução a Linguagem de Programação PHP
Introdução a Linguagem de Programação PHP
 
Laboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em discoLaboratório de Programação I: Arquivos (texto) em disco
Laboratório de Programação I: Arquivos (texto) em disco
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Linux shell
Linux shellLinux shell
Linux shell
 
Curso shell
Curso shellCurso shell
Curso shell
 

Similar to Files e File System PHP (Português)

Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosDaniel Brandão
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHPAula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHPDalton Martins
 
Escrever e ler arquivos com java
Escrever e ler arquivos com javaEscrever e ler arquivos com java
Escrever e ler arquivos com javaMoisesInacio
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdfssuserad6350
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivoKievnny Mendonca
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaJonata Weber
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Laboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoLaboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoAlex Camargo
 

Similar to Files e File System PHP (Português) (20)

Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Aula4
Aula4Aula4
Aula4
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Estrutura de dados ii
Estrutura de dados iiEstrutura de dados ii
Estrutura de dados ii
 
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHPAula 05 - Programação Web - Trabalhando com arquivos em PHP
Aula 05 - Programação Web - Trabalhando com arquivos em PHP
 
Escrever e ler arquivos com java
Escrever e ler arquivos com javaEscrever e ler arquivos com java
Escrever e ler arquivos com java
 
Pascal Arquivos
Pascal ArquivosPascal Arquivos
Pascal Arquivos
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdf
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Procergs php-seguro
Procergs php-seguroProcergs php-seguro
Procergs php-seguro
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
PHP 5.3 - Introdução
PHP 5.3 - IntroduçãoPHP 5.3 - Introdução
PHP 5.3 - Introdução
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Laboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoLaboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em disco
 

Files e File System PHP (Português)

  • 1. Files & File System Certificação PHP Criado por : Emerson Silva
  • 2. 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.
  • 3. 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()
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. fwrite() <?php $file = fopen("test.txt","w"); echo fwrite($file,"Hello World. Testing!"); fclose($file); ?> http://www.s2tech.com.br/treinamento/exemplo_fwrite.php
  • 23. fputs() ● fputs – Apelido/sinônimo para a função fwrite(). – int fputs ( resource $handle , string $string [, int $length ] )
  • 24. 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
  • 25. 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
  • 26. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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, "%st%st%sn")) { 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. ftruncate() <?php $fp = fopen("/tmp/file.txt", "r+"); ftruncate($fp, 2); fclose($fp); ?>
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 48. 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
  • 50. 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
  • 51. filesize() <?php $filename = 'arquivolinha.txt'; echo $filename . ': ' . filesize($filename) . ' bytes'; ?> http://www.s2tech.com.br/treinamento/exemplo_filesize.php
  • 52. 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
  • 53. filetype() <?php echo filetype('arquivolinha.txt'); // file echo '<br>'; echo filetype('../treinamento/'); // dir ?> http://www.s2tech.com.br/treinamento/exemplo_filetype.php
  • 54. 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
  • 55. 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
  • 56. 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
  • 58. 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
  • 60. 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 computernamesharefilename 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. fileinode() <?php $filename = 'arquivolinha.txt'; $inode = fileinode($filename); echo "O inode do $filename é : ".$inode; ?> http://www.s2tech.com.br/treinamento/exemplo_fileinode.php
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. File System Nome Padrão Descricao Modificavel allow_url_fopen 1 Permite a função fopen() trabalhar com URL PHP_INI_SYSTE M 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_endin gs 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
  • 72. 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
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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
  • 77. 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
  • 78. 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
  • 79. is_dir() Imagine a estrutura de pastas abaixo no servidor :
  • 80. 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
  • 81. 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
  • 82. 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
  • 83. 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
  • 84. 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
  • 85. 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
  • 86. 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
  • 87. dirname() <?php $path = "/public_html/treinamento"; $file = dirname ($path); ?> http://www.s2tech.com.br/treinamento/exemplo_dirname.php
  • 88. 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
  • 89. 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.
  • 90. glob() <?php foreach (glob("*.php") as $arquivo) { echo "O tamanho do $arquivo é : " . filesize($arquivo) . "<br>"; } ?> http://www.s2tech.com.br/treinamento/exemplo_glob.php
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. 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
  • 100. 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
  • 101. 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
  • 102. 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
  • 103. basename() <?php echo '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
  • 104. 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
  • 105. 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
  • 106. 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
  • 107. 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
  • 109. 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”); ?>
  • 110. 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).
  • 111. 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
  • 112. 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
  • 113. 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
  • 114. 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
  • 115. 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
  • 116. 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.
  • 117. 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
  • 118. 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
  • 119. SPL ● Para uso com arquivos temos as seguintes classes : – SplFileInfo http://php.net/manual/pt_BR/class.splfileinfo.php – SplFileObject http://php.net/manual/pt_BR/class.splfileobject.php – SplTempFileObject http://php.net/manual/pt_BR/class.spltempfileobject.php
  • 120. 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
  • 121. Quem sou eu ? ● Emerson Rodrigues da Silva – Support Master e Desenvolvedor na Industria Fox – Twitter : @emerson_rsilva – emerson.rodsilva@gmail.com
  • 122. 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/