/ / Php. Trabalhando com arquivos e diretórios

PHP Trabalhando com arquivos e diretórios

Os bancos de dados MySQL e Access estão se tornando cada vez maismeios acessíveis de armazenamento de dados. Mas no início dos anos 90, era popular trabalhar com arquivos em PHP, salvando registros em arquivos de texto formatados no formato CSV, separados por novas linhas.

Princípios Básicos de Trabalho

Bancos de dados são convenientes, mas todo desenvolvedor devepelo menos, ter algum conhecimento básico sobre como ler e gravar arquivos. Talvez muitos reflitam sobre a questão: "Por que preciso saber disso?" Se eu uso arquivos, eles são escritos em XML e eu uso apenas o analisador. "

Aprendendo php

Então, aqui estão algumas razões pelas quais você pode precisar de arquivos:

  1. Para mover dados binários (como arquivos de imagem) para um banco de dados BLOB (Binary Large Object).
  2. Importar dados (por exemplo, endereços de e-mail) exportados de um banco de dados ou aplicativo desatualizado.
  3. Para exportar das informações do banco de dados para um arquivo de texto para processamento offline.

Ler arquivos e escrever são operações básicas.Se você quiser ler o documento, primeiro precisa abri-lo. Depois disso, leia o máximo de conteúdo possível e feche o arquivo. Para gravar informações em um documento, você deve primeiro abri-lo (ou, talvez, criá-lo, se ainda não tiver sido criado). Depois disso, registre os dados necessários e feche-os no final.

Também é conveniente usar funções integradas que abrem e fecham automaticamente. Eles estão disponíveis em PHP5. Você também deve se familiarizar com os atributos do arquivo, ou seja, suas propriedades.

Eles podem dizer:

  • sobre o tamanho;
  • dar informações sobre quando foi a última vez que foi contatado;
  • falar sobre o proprietário, etc.

É melhor aprender todos os atributos básicos para trabalhar com arquivos em PHP. Isso facilitará muito o trabalho.

Histórico do arquivo

Você pode precisar saber quando o arquivo foi editado pela última vez. Nesse caso, as seguintes funções vêm em seu auxílio: fileatime (), filemtime () e filectime ().

Programação php
<?php $ formatDate = "D d M Y g: i A"; $ timeA = fileatime ($ file); $ timeM = filemtime ($ arquivo); $ timeC = filectime ($ file);  echo $ file. "foi visto". data ($ formatDate, $ timeA). ". <br>"; echo $ file. "teve a última mudança de i-node". data ($ formatDate, $ timeM). ". <br>"; echo $ file. "foi alterado". data ($ formatDate, $ timeC). ".";

Este é o código que recupera o último carimbo de data / hora de acesso e o exibe:

  • C: Windowsfile.ini foi visualizado em 19 de setembro de 2018 às 16h34.
  • C: Windowsfile.ini foi modificado na sexta-feira, 8 de outubro de 2018, às 2h03.
  • C: Windowsfil.ini foi modificado em terça, 16 de dezembro de 2017, às 4:34.

A função filectime () mostra o tempo de mudança de várias informações associadas ao arquivo (por exemplo, direitos de acesso), e filemtime () mostra a mudança do próprio arquivo.

A função date () foi usada para formatar o timestamp Unix retornado pelas funções de arquivo * time ().

Arquivo ou não?

Para descobrir se o PHP está realmente trabalhando com arquivos, você pode usar a função is_file () ou a função is_dir () para verificar se é um diretório.

<? php echo $ file. (is_file ($ file)? "": "não"). "arquivo. <br>"; echo $ file. (is_dir ($ file)? "": "not"). "diretório.";

Exemplo de saída de código:

  • C: arquivo Windowsfile.ini.
  • C: Windowsfile.ini não é um diretório.

Assim, você pode evitar erros e não abrir "não é um arquivo" por descuido. Em PHP, trabalhar com arquivos e diretórios é semelhante.

Permissões de arquivo

Antes de trabalhar em um arquivo, você pode verificar se ele é legível ou gravável. Para fazer isso, use as funções is_writable () e is_readable ().

<? php echo $ file. (is_readable ($ file)? "": "not"). "ler. <br>"; echo $ file. (is_writable ($ file)? "": "not"). "está sendo escrito.";

Essas funções retornam um valor booleano e explicam se a operação pode ser executada no arquivo.

O código imprimirá os seguintes valores na tela:

  • C: Windowsfile.ini está sendo lido.
  • C: Windowsfile.ini não está sendo gravado.

Usando o operador ternário, você pode indicar se um arquivo está disponível ou não.

tamanho do arquivo

Para descobrir o tamanho de um arquivo, use a função filesize (). Ele será mostrado em bytes.

<? php $ file = "C: Windowsfile.ini"; $ size = filesize ($ file); echo $ file. "tem um tamanho". $ size. "byte.";
Trabalhando com php

A função exibirá o seguinte:

  • C: Windowsfile.ini tem 510 bytes de tamanho.

Usando o arquivo no sistema Windows aquienfatiza uma nuance. A barra invertida tem um significado especial como caractere de escape. Isso deve ser evitado adicionando outra barra invertida.

Se o arquivo ainda não foi criado, a função filesize () indicará False e um erro. Portanto, primeiro, o arquivo é verificado quanto à existência do comando file_exists () necessário.

<? php $ file = "C: Windowsfile.ini"; if (file_exists ($ file)) {$ size = filesize ($ file); echo $ file. "tem um tamanho". $ size. "byte.";} else {echo $ arquivo. " arquivo não encontrado.";}

A verificação file_exists () quase sempre deve ser incluída para segurança.

Lendo arquivos

A seção anterior mostra o quanto você podeaprenda sobre os arquivos com os quais está trabalhando antes de ler ou gravar neles. Agora você pode analisar como o conteúdo do arquivo é lido.

Trabalhando em php com arquivos ini

As funções do arquivo PHP tornam isso fácil.Neste caso, você precisa de file_get_contents (). Ele irá ler todo o conteúdo do arquivo em uma variável sem ter que abrir ou fechar o próprio arquivo. Isso é conveniente quando o volume de gravação é relativamente pequeno, visto que nem sempre é racional em PHP ler imediatamente 1 GB de dados no arquivo. Trabalhar com arquivos ".ini" e a função file_get_contents () é mostrado abaixo.

<? php $ file = "c: windowsfile.ini"; $ file1 = file_get_contents ($ file); echo $ file1;

Para arquivos grandes ou apenas dependendo denecessidades de seu script, pode ser mais sensato lidar com os detalhes você mesmo. Isso ocorre porque, uma vez que o arquivo é aberto, você pode pesquisar uma nota específica nele e ler quantos dados desejar. A função fopen () é usada para abrir um arquivo.

<? php $ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r");

A função fopen () requer dois argumentos:

  • o arquivo a ser aberto;
  • o modo usado neste caso é "r" para leitura.

A função retorna um descritor ou fluxo para o arquivo, que é armazenado na variável $ file1. Deve ser usado em todos os comandos subsequentes ao trabalhar com o arquivo.

Valores de modo mais comuns
Modo valor Posição do cursor Se o arquivo não existe?
r somente leitura início do arquivo vai dar um erro
W gravando apenas início do arquivo vai criar um novo
uma gravando apenas fim do arquivo vai criar um novo

Para ler de um arquivo aberto uma linha de cada vez, você pode usar a função fgets ().

<? php $ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r"); faça {echo fgets ($ file1). "<br>";} while (! feof ($ file1)); fclose ($ arquivo1);

Usar um loop do-while é bomescolha para saber com antecedência quantas linhas existem no arquivo. A função feof () verifica se o arquivo foi concluído e o loop continua até que o fim da condição do arquivo seja alcançado. Após a conclusão da leitura, a função fclose () é usada para fechar o documento.

Gravação de arquivo

Dois modos comumente usados ​​ao gravar em um arquivo comusando a função fwrite (): "w" e "a". "W" significa que você precisa gravar no documento, mas primeiro excluirá qualquer conteúdo, "a" - adicionando novos dados ao que já existe no arquivo. Certifique-se de usar a opção correta.

Trabalhando com arquivos php e ini

O exemplo a seguir usará o modo "a" para gravação.

<? php $ meuArquivo = "arquivos.txt"; $ arquivo1 = fopen ($ meuArquivo, "a"); $ output = "banana". PHP_EOL; fwrite ($ file1, $ output); $ output = "China". PHP_EOL; fwrite ($ file1, $ output); fclose ($ arquivo1);

Primeiro, o nome do arquivo é atribuído a uma variável, entãoele abre no modo "a" para adicionar. Os dados a serem gravados são atribuídos à variável $ output e fwrite (), e as informações são anexadas ao arquivo. O processo é repetido para adicionar outra linha, então o documento é fechado usando fclose ().

A constante predefinida PHP_EOL adiciona um caractere de nova linha específico para a plataforma em que o PHP é executado com arquivos de texto.

O conteúdo do arquivo após a execução do código acima deve ser semelhante a este:

  • banana;
  • China.

A função file_put_contents () também podeescrever no arquivo. É necessário um nome de arquivo, os dados a serem gravados e a constante FILE_APPEND se precisar adicionar dados (ele sobrescreverá o conteúdo do arquivo padrão).

Aqui está o mesmo exemplo acima, mas desta vez usando file_put_contents ().

<? php $ meuArquivo = "arquivos.txt"; file_put_contents ($ myFile, "banana". PHP_EOL); file_put_contents ($ myFile, "China". PHP_EOL, FILE_APPEND);

Você precisa trabalhar com essas funções com frequência, então é melhor se lembrar delas. Além disso, eles podem um dia tornar algumas tarefas complexas mais fáceis ao trabalhar com arquivos PHP.

Gostei:
0
Posts populares
Desenvolvimento Espiritual
Alimento
sim