aula 9 arquivos

32
PHP: Manipulação de Arquivos Programação Dinamica

Upload: johnatas-ferreira

Post on 18-Dec-2015

230 views

Category:

Documents


0 download

DESCRIPTION

Aula 9 Arquivos

TRANSCRIPT

  • 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