CAPÍTULO II Armazenando e recuperando dados ARMAZENANDO E RECUPERANDO DADOS Agenda Salvar dados Abrir um arquivo Criar e gravar Fechar Ler Bloquear Excluir ARMAZENANDO E RECUPERANDO DADOS Visão geral Gravando dados em arquivos Abrir arquivo Se o arquivo não existir ainda, o mesmo deverá ser criado. Gravar os dados no arquivo Fechar o arquivo Ler dados de um arquivo Abrir arquivo Caso o arquivo não exista, ou não possa ser aberto, exibir uma mensagem elegante. Ler dados a partir do arquivo Fechar o arquivo ARMAZENANDO E RECUPERANDO DADOS Abrindo Função fopen() um arquivo Retorna false quando falha a abertura de um arquivo. Caso contrário, retorna o ponteiro do arquivo aberto. Function fopen(localArquivo,tipoOperacao) localArquivo indica o diretorio onde se encontra o arquivo a ser aberto tipoOperacao indica se o arquivo será aberto para leitura, ou escrita, ou ambos, etc... Ex: $arq=fopen($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.txt”,w); $_SERVER['DOCUMENT_ROOT'] indica o endereço raiz de onde se encontra todas as aplicações desenvolvidas. Cuidado ao usar a /(barra) para indicar diretórios, pois ocorre uma pequena alteração quando relacionada a windows e linux. ARMAZENANDO E RECUPERANDO DADOS ARMAZENANDO E RECUPERANDO DADOS Gravando em um arquivo Função fwrite(ponteiroArquivo,variavelConteudo) Função fputs(); //fputs é um Alias para fwrite ponteiroArquivo indica a variável que aponta para o ponteiro retornado por pela função fopen. $arq=fopen($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.txt” ,w); fwrite($arq,”Php e Mysql”); A estrutura a ser armazenada no arquivo depende da estrutura definida pela aplicação. Um terceiro parâmetro (opcional) pode ser utilizado para indicar o tamanho de bytes a serem gravados. ARMAZENANDO E RECUPERANDO DADOS Fechando um arquivo Função fclose(ponteiroArquivo) ponteiroArquivo indica o ponteiro que está referenciando para o arquivo aberto. Quando o arquivo é fechado corretamente, a função retorna o valor true, caso contrário retorna false; $arq=fopen($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.txt” ,w); fwrite($arq,”Php e Mysql”); fclose($arq); ARMAZENANDO E RECUPERANDO DADOS Lendo de um arquivo Function fgets(ponteiroArquivo,tamanhoLeitura) ponteiroArquivo indica o ponteiro que está referenciando para o arquivo aberto. $arq=fopen($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.txt”,w); $text = fgets($arq,999); fclose($arq); Function feof(ponteiroArquivo) Indica se chegou ao final do arquivo ponteiroArquivo indica o ponteiro que está referenciando para o arquivo aberto. Retorna true se alcançou o final do arquivo, caso contrário retorna false. If(feof($arq) == true) echo “Final de arquivo”; Else echo “Contem registros.”; ARMAZENANDO E RECUPERANDO DADOS Lendo todo um arquivo, linha por linha $arq=fopen($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.txt” ,w); While(feof(arq) == false){ $text = fgets($arq,999); echo $text; } fclose($arq); ARMAZENANDO E RECUPERANDO DADOS Lendo todo um arquivo inteiro Function readfile(localArquivo) localArquivo indica o local onde se encontra o arquivo que será lido $arq=readfile($_SERVER['DOCUMENT_ROOT'].”exemplo/arquivo.t xt”); ARMAZENANDO E RECUPERANDO DADOS Lendo todo um caracter Function fgetc Ler caracter por caracter de um arquivo. while (!feof($fp)) { $char = fgetc($fp); if (!feof($fp)) echo ($char==”\n” ? ‘<br />’: $char); } ARMAZENANDO E RECUPERANDO DADOS Outras funções File_exists Filesize Reposiciona o arquivo no inicio Fseek Determina o tamanho do arquivo Rewind Verifica a existência de um arquivo Reposiciona o arquivo na posição determinada pelo usuário Flock Trava o arquivo impedindo que outro usuário manipule-o ao mesmo tempo. Leitura complementar Capítulo 2 Livro base da disciplina