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.
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. "
Então, aqui estão algumas razões pelas quais você pode precisar de arquivos:
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:
É melhor aprender todos os atributos básicos para trabalhar com arquivos em PHP. Isso facilitará muito o trabalho.
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 ().
<?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:
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 ().
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:
Assim, você pode evitar erros e não abrir "não é um arquivo" por descuido. Em PHP, trabalhar com arquivos e diretórios é semelhante.
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:
Usando o operador ternário, você pode indicar se um arquivo está disponível ou não.
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.";
A função exibirá o seguinte:
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.
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.
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:
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.
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.
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.
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:
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.