Académique Documents
Professionnel Documents
Culture Documents
Manipulao 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.
http://marx.vanderlinden.com.br/
file_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)
http://marx.vanderlinden.com.br/
file_get_contents
modelo.html
pagina.php
file_get_contents
Sada:
http://marx.vanderlinden.com.br/
file_get_contents
file_get_contents pode ser usada para obter um arquivo a partir de uma URL externa.
http://marx.vanderlinden.com.br/
file_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
http://marx.vanderlinden.com.br/ 7
file_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!";
http://marx.vanderlinden.com.br/
file_put_contents
Sada:
44 bytes escritos
texte.txt:
http://marx.vanderlinden.com.br/
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 http://marx.vanderlinden.com.br/ echo "Erro!";
10
file_put_contents
Sada:
46 bytes escritos
texte.txt:
http://marx.vanderlinden.com.br/
11
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. fopen fgets / fgetc feof fclose
http://marx.vanderlinden.com.br/ 12
Funes:
fopen
fopen($arquivo, $modo)
L o $arquivo especificado. Retorna uma Referncia de Arquivo, ou false em caso de erro. $modo pode ser:
'r' 'w' 'a' Somente leitura. Somente escrita. Cria ou sobrescreve o arquivo. Somente escrita. Cria ou continua o arquivo.
13
fgetc, fgets
http://marx.vanderlinden.com.br/
14
feof, fclose
feof($recurso) Retorna true, se o arquivo indicado pelo $recurso tiver chegado ao fim; false, do contrrio. fclose($recurso)
http://marx.vanderlinden.com.br/
15
http://marx.vanderlinden.com.br/
16
http://marx.vanderlinden.com.br/
18
Linha 0: Primeira linha. <br> Linha 1: Segunda linha. <br> Linha 2: Terceira linha.<br>
http://marx.vanderlinden.com.br/
19
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)
http://marx.vanderlinden.com.br/
20
http://marx.vanderlinden.com.br/
21
teste2.txt
http://marx.vanderlinden.com.br/
22
Verificando arquivos
PHP tambm possui vrias funes voltadas testes realizados sobre arquivos do sistema.
http://marx.vanderlinden.com.br/
23
file_exists
file_exists($arquivo)
if ( file_exists('/usr/local/htdocs/index.html') ) echo "O arquivo existe!"; else echo "O arquivo no existe!";
http://marx.vanderlinden.com.br/ 24
Permisses
Funes que retornam true ou false, dependedo a permisso verificada (leitura, escrita, execuo)
http://marx.vanderlinden.com.br/
25
Tipo de Arquivo
Funes booleanas que verificam se o arquivo , respectivamente um diretrio, um arquivo comum ou um link simblico.
http://marx.vanderlinden.com.br/
26
Diretrio e Arquivo
Retorna a poro do $caminho composta pelo nome do arquivo. Se o nome do arquivo terminar em $extensao, essa tambm ser eliminada.
http://marx.vanderlinden.com.br/ 27
Tamanho do Arquivo
filesize($arquivo)
http://marx.vanderlinden.com.br/
28
<?php Exemplo function ilista($txt){ echo "<li>O arquivo $txt.</li>\n"; } $arquivo = '/etc/apt/sources.list'; if(file_exists($arquivo)){ ?> <h3><?= $arquivo ?></h3> Diretrio: <strong><?= dirname($arquivo) ? ></strong><br> Arquivo: <strong><?= basename($arquivo) ?></ strong><br> Arquivo sem extenso: <strong><?= basename($arquivo, '.list') ?></strong><br> Tamanho: <strong><?= filesize($arquivo) ?></ 29 strong> bytes<br> http://marx.vanderlinden.com.br/
<ul> <?php if(is_readable($arquivo)) ilista('pode ser lido'); if(is_writable($arquivo)) ilista('pode ser escrito'); if(is_executable($arquivo)) ilista(' executvel'); if(is_dir($arquivo)) ilista(' um diretrio'); if(is_file($arquivo)) ilista(' um arquivo comum'); if(is_link($arquivo)) ilista(' um link simblico'); ?> http://marx.vanderlinden.com.br/ 30 </ul>
http://marx.vanderlinden.com.br/
31
Sada
http://marx.vanderlinden.com.br/
32