PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

21
PHP Aula 4 Prof. Naércio Filho Técnico em Informática www.funpar.ufpr.br:8080/naercio

Transcript of PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

Page 1: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP

Aula 4

Prof. Naércio Filho

Técnico em Informática

www.funpar.ufpr.br:8080/naercio

Page 2: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – SUMÁRIO

Upload de Arquivos– $_FILES

Manipulação de Arquivos– Abrir arquivos no servidor– Ler / escrever

Page 3: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

Envio de Arquivos para o Servidor. Consistem em um formulário html e um script para

manipular esse arquivo.<html><body> <form action="upload.php" method="post" enctype="multipart/form-data"> Arquivo: <input type="file" name="arquivo" id="arquivo" /> <br> <input type="submit"/> </form></body></html>

Page 4: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

Detalhes do Formulário– A tag HTML <form> precisa ter uma opção content-type

com o valor "multipart/form-data" para o arquivo ser enviado

– a tag <input> precisa ser especificada do tipo file type="file"

– o upload de arquivos pode ser uma grande brecha de segurança num sistema, por isso é recomendado que apenas os usuários conhecidos possam fazer upload

Page 5: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

No arquivo que recebe o formulário, devemos usar o array (bidimensional) $_FILES, este irá conter os dados do arquivo que foi enviado para o servidor.

<?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Arquivo: " . $_FILES["arquivo"]["name"] . "<br />"; echo "Tipo: " . $_FILES["arquivo"]["type"] . "<br />"; echo "Tamanho: " . ($_FILES["arquivo"]["size"] / 1024) . " Kb<br />"; echo "Arquivo Temporário: " . $_FILES["arquivo"]["tmp_name"]; }?>

Page 6: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

O array $_FILES é indexado da seguinte forma:– o primeiro índice é igual ao name dado ao input no

formulário– no segundo nível ele esta indexado pelas propriedades do

arquivo "name", "type", "size", "tmp_name" or "error"

$_FILES["arquivo"]["name"] - O nome do Arquivo.

$_FILES["arquivo"]["type"] - O Tipo do Arquivo.

$_FILES["arquivo"]["size"] - O Tamanho do Arquivo em Bytes.

$_FILES["arquivo"]["tmp_name"] - O nome temporario dado ao arquivo no servidor.

$_FILES["arquivo"]["error"] - A Mensagem de erro caso exista.

Page 7: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

Após feito o upload é necessário copiar o arquivo temporário, para seu real destino, porque senão será excluído assim que terminar a execução do script

<?php if ($_FILES["arquivo"]["error"] > 0) { echo "Codigo de Erro: " . $_FILES["arquivo"]["error"] . "<br />"; } else { if (file_exists("upload/" . $_FILES["arquivo"]["name"])) { echo $_FILES["arquivo"]["name"] . " Arquivo já existente. "; } else { move_uploaded_file($_FILES["arquivo"]["tmp_name"], "upload/" . $_FILES["arquivo"]["name"]); echo "Armazenado em: " . "upload/" . $_FILES["arquivo"]["name"]; } }?>

Page 8: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Upload de Arquivos

como medida de segurança podem ser adicionados filtros pelo tipo de arquivo e pelo tamanho.

<?php

if (($_FILES["arquivo"]["type"] == "image/gif")

|| ($_FILES["arquivo"]["type"] == "image/pjpeg")

&& ($_FILES["arquivo"]["size"] < 20000)) {

// codigo de cópia

} else {

echo "Arquivo inválido";

}

?>

Page 9: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

Manipulando Arquivos no Servidor Em alguns casos há necessidade de ler ou

escrever em um arquivo no servidor– fopen() é usado para abrir um arquivo

seu primeiro parâmetro é o nome do arquivo e o segundo o modo como esse arquivo será aberto.

<?php

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

?>

Page 10: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

Modos de abrir um arquivo r - Somente Leitura, a partir do inicio r+ - Modo de Leitura e Escrita, a partir do inicio w - Somente escrita, abre e limpa um arquivo ja existente, ou cria um

novo arquivo se este nao existir w+ - Modo de Leitura e Escrita, abre e limpa um arquivo ja existente,

ou cria um novo arquivo se este nao existir a - Modo de escrita, e começa a escrever a partir do final do arquivo,

ou cria um novo arquivo se este nao existir a+ - Modo de Leitura e Escrita, e começa a escrever a partir do final

do arquivo, ou cria um novo arquivo se este nao existir x - Somente Escrita, cria um novo arquivo, retorna False caso o

arquivo ja exista x+ - Modo de Leitura e Escrita, cria um novo arquivo, retorna False

caso o arquivo ja exista

Se fopen() nao conseguir abrir o arquivo, retorna 0 (false)

Page 11: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

Após utilizar um arquivo é necessário fecha-lo, para isso usa-se fclose();

<?php

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

//código a ser executado

fclose($file);

?>

Page 12: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

Lendo um arquivo é possível saber quando este não contém mais dados, usando feof() (end-of-file)

<?php

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

while(!feof($file)){

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

}

fclose($file);

?>

Page 13: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

Para ler o conteúdo do arquivo linha por linha usa-se fgets(), em cada interação será selecionada uma linha do arquivo

<?php

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

while(!feof($file)){

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

}

fclose($file);

?>

Page 14: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

podemos também ler um arquivo caractere por caractere com a função fgetc();

<?php

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

while (!feof($file)){

echo fgetc($file);

}

fclose($file);

?>

Page 15: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

os dados podem ser escritos no arquivo usando fwrite();

<?php

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

echo fwrite($file,"Escrevendo!");

fclose($file);

?>

Page 16: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Manipulando Arquivos

para excluir um arquivo, usa-se unlink();<?php

$file = "test.txt";

if (!unlink($file)) {

echo ("Erro deletando $file");

} else {

echo ("Deletado $file");

}

?>

Page 17: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Exercícios

1 - montar um formulário/script para fazer o upload de uma imagem. e em seguida mostrar a imagem e seu nome.

Page 18: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Exercícios

2 - usando a manipulação de arquivos, criar um arquivo de texto qualquer, abrir e ler seu conteúdo, e mostrar na tela.

Page 19: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Exercícios

3 - escrever em um arquivo alguma coisa.

Page 20: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Exercícios

4 - montar um formulário, escrever num arquivo os dados enviados por esse formulário, e então mostrar na tela.

Page 21: PHP Aula 4 Prof. Naércio Filho Técnico em Informática .

PHP – Exercícios

5 - montar um arquivo de Texto com os meses do ano, fazer upload desse arquivo, montar uma função para ler esse arquivo e armazenar os dados em um vetor (manter a função num arquivo para fazer um include) em seguida mostrar na tela todas as posições do Array usando o foreach.

(para entregar, enviar por email para [email protected] ou [email protected])