PHP: Manipulao de Arquivos
Programao Dinamica
2Manipulao de Arquivos
PHP define diversas funes para leitura e escrita de arquivos de texto.
Arquivos de texto so ideais para o armazenamento de dados simples. Mais complexidade: banco de dados.
Deve-se sempre prestar ateno ao esquema de permisses de arquivos no servidor.
3file_get_contents
A funo file_get_contents l todo o contedo de um arquivo de texto, e o armazena em uma string.
Sintaxe: file_get_contents($arquivo)
Retorna o contedo do arquivo, ou false, se houver erro.
4file_get_contents
modelo.html
pagina.php
Nome: {nome}E-mail: {email}
$texto = file_get_contents('modelo.html');echo str_replace(
array('{nome}','{email}'), array('Fulano de Tal','[email protected]'),$texto
)
5file_get_contents
Nome: Fulano de TalE-mail: [email protected]
Sada:
6file_get_contents
file_get_contents pode ser usada para obter um arquivo a partir de uma URL externa.
$slashdot = file_get_contents('http://www.unipe.br/'
);
7file_put_contents
A funo file_put_contents salva o contedo de uma string em um arquivo de texto local.
Sintaxe: file_put_contents($arquivo, $conteudo)
$conteudo pode ser um array ou uma string.
Retorna o nmero de bytes escritos no arquivo, ou false, em caso de erro
8file_put_contents
$linhas = array('Primeira linha.','Segunda linha.','Terceira linha.'
);$bytes =
file_put_contents('teste.txt',$linhas);if($bytes)
echo "$bytes bytes escritos";else
echo "Erro!";
9file_put_contents
Sada:
texte.txt:
44 bytes escritos
Primeira linha.Segunda linha.Terceira linha.
10
file_put_contents$linhas = array(
'Primeira linha.','Segunda linha.','Terceira linha.'
);$bytes =
file_put_contents( 'teste.txt', implode("\n", $linhas) );if($bytes)
echo "$bytes bytes escritos";else
echo "Erro!";
11
file_put_contents
Sada:
texte.txt:
46 bytes escritos
Primeira linha.Segunda linha.Terceira linha.
12
Lendo um arquivo por partes
possvel ler um arquivo passo a passo, ao invs de carreg-lo todo em memria, de uma s vez. til para o processamento de arquivos longos.
Funes: fopen fgets / fgetc feof fclose
13
fopen
fopen($arquivo, $modo) L o $arquivo especificado. Retorna uma Referncia de Arquivo, ou false em
caso de erro. $modo pode ser:
'r' Somente leitura.'r+' Leitura e escrita.'w' Somente escrita. Cria ou sobrescreve o arquivo.'w+' Leitura e escrita. Cria ou sobrescreve o arquivo.'a' Somente escrita. Cria ou continua o arquivo.'a+' Leitura e escrita. Cria ou continua o arquivo.
14
fgetc, fgets
fgetc($recurso) L e retorna o prximo caractere do Recurso
de Arquivo especificado. fgets($recurso)
L e retorna a prxima linha do Recurso de Arquivo especificado.
15
feof, fclose
feof($recurso) Retorna true, se o arquivo indicado pelo
$recurso tiver chegado ao fim; false, do contrrio.
fclose($recurso) Finaliza a manipulao do arquivo e o libera
ao sistema operacional.
16
Lendo por caractere
$rec = fopen('teste.txt', 'r');$i = 0;while(!feof($rec)){
$linha = fgetc($rec);echo "Caractere $i: $linha\n";$i++;
}fclose($rec);
17
Lendo por caractereCaractere 0: PCaractere 1: rCaractere 2: iCaractere 3: mCaractere 4: eCaractere 5: iCaractere 6: rCaractere 7: aCaractere 8: Caractere 9: lCaractere 10: iCaractere 11: nCaractere 12: h(...)
18
Lendo por linha
$rec = fopen('teste.txt', 'r');$i = 0;while(!feof($rec)){
$linha = fgets($rec);echo "Linha $i: $linha\n";$i++;
}fclose($rec);
19
Lendo por linha
Linha 0: Primeira linha.
Linha 1: Segunda linha.
Linha 2: Terceira linha.
20
Escrevendo um arquivo por partes
Para escrever em um arquivo passo a passo, usam-se as mesmas funes fopen (ateno para as opes!) e fclose.
Para escrever no Recurso, usa-se: fwrite($res, $string)
21
Escrevendo um arquivo por partes
$rec = fopen('teste2.txt', 'wr+');if(!rec){
echo "Erro!";}else{
fwrite($rec, "The book is on the table\n");
fwrite($rec, "1 + 1 = " . (1+1));fclose($rec);
}
22
teste2.txt
The book is on the table1 + 1 = 2
23
Verificando arquivos
PHP tambm possui vrias funes voltadas testes realizados sobre arquivos do sistema. Existncia de arquivos. Permisses. Tamanho e tipo.
24
file_exists
file_exists($arquivo) Retorna true se o arquivo existe; false, do
contrrio.
if ( file_exists('/usr/local/htdocs/index.html'))
echo "O arquivo existe!";else
echo "O arquivo no existe!";
25
Permisses
is_readable($arquivo) is_writable($arquivo) is_executable($arquivo)
Funes que retornam true ou false, dependedo a permisso verificada (leitura, escrita, execuo)
26
Tipo de Arquivo
is_dir($arquivo) is_file($arquivo) is_link($arquivo)
Funes booleanas que verificam se o arquivo , respectivamente um diretrio, um arquivo comum ou um link simblico.
27
Diretrio e Arquivo
dirname($caminho) Retorna a poro do $caminho composta
pelo diretrio. basename($caminho, [$extensao])
Retorna a poro do $caminho composta pelo nome do arquivo.
Se o nome do arquivo terminar em $extensao, essa tambm ser eliminada.
28
Tamanho do Arquivo
filesize($arquivo) Retorna o tamanho do arquivo (em bytes).
29
Exemplo
Diretrio: Arquivo sem extenso: Tamanho: bytes
30
31
32
Sada
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32