/ / Php. Lavorare con file e directory

PHP. Lavorare con file e directory

I database MySQL e Access stanno diventando sempre piùmezzi accessibili di archiviazione dei dati. Ma all'inizio degli anni '90, era popolare lavorare con i file in PHP, salvando i record in file di testo formattati in formato CSV, separati da nuove linee.

Principi di base del lavoro

I database sono convenienti, ma ogni sviluppatore dovrebbealmeno avere alcune conoscenze di base su come leggere e scrivere file. Forse molti rifletteranno sulla domanda: "Perché devo sapere questo?" Se uso i file, sono scritti in XML e uso solo il parser. "

Imparare php

Quindi, ecco alcuni motivi per cui potresti aver bisogno di file:

  1. Per spostare dati binari (ad esempio file immagine) nel database BLOB (oggetti binari di grandi dimensioni).
  2. Importa dati (ad es. Indirizzi email) esportati da un database o un'applicazione obsoleti.
  3. Per esportare dalle informazioni del database in un file di testo per l'elaborazione offline.

La lettura di file e la scrittura sono operazioni di base.Se vuoi leggere il documento, devi prima aprirlo. Successivamente, leggi il maggior numero possibile di contenuti, quindi chiudi il file. Per scrivere informazioni su un documento, devi prima aprirlo (o, forse, crearlo, se non è già stato creato). Successivamente, registra i dati necessari e chiudilo alla fine.

È anche conveniente utilizzare le funzioni integrate che si aprono e si chiudono automaticamente. Sono disponibili in PHP5 Dovresti anche familiarizzare con gli attributi del file, cioè le sue proprietà.

Possono dire:

  • circa le dimensioni;
  • fornire informazioni sull'ultima volta che è stato contattato;
  • parlare del proprietario, ecc.

È meglio imparare tutti gli attributi di base per lavorare con i file in PHP. Ciò faciliterà notevolmente il lavoro.

Cronologia dei file

Potrebbe essere necessario sapere quando il file è stato modificato l'ultima volta. In questo caso, le seguenti funzioni vengono in soccorso: fileatime (), filemtime () e filectime ().

Programmazione php
<?php $ formatDate = "D d M Y g: i A"; $ timeA = fileatime ($ file); $ timeM = filemtime ($ file); $ timeC = filectime ($ file);  echo $ file. "è stato visualizzato". data ($ formatDate, $ timeA). ". <br>"; echo $ file. "ha avuto l'ultima modifica i-node". data ($ formatDate, $ timeM). ". <br>"; echo $ file. "è stato cambiato". data ($ formatDate, $ timeC). ".";

Ecco il codice che recupera il timestamp dell'ultimo accesso e lo visualizza:

  • C: Windowsfile.ini è stato visualizzato il 19 settembre 2018 16:34.
  • C: Windowsfile.ini è stato modificato venerdì 8 ottobre 2018 2:03.
  • C: Windowsfil.ini è stato modificato in data Tue Dec 16, 2017 4:34 am.

La funzione filectime () mostra l'ora di modifica di varie informazioni associate al file (ad esempio, i diritti di accesso) e filemtime () mostra la modifica del file stesso.

La funzione date () è stata utilizzata per formattare il timestamp Unix restituito dalle funzioni file * time ().

File o no?

Per scoprire se PHP sta effettivamente lavorando con i file, puoi usare la funzione is_file () o la funzione is_dir () per verificare se si tratta di una directory.

<? php echo $ file. (is_file ($ file)? "": "not"). "file. <br>"; echo $ file. (is_dir ($ file)? "": "non"). "directory.";

Esempio di codice di output:

  • C: file Windowsfile.ini.
  • C: Windowsfile.ini non è una directory.

Pertanto, è possibile evitare errori e non aprire "non un file" per incuria. In PHP, lavorare con file e directory è simile.

Autorizzazioni sui file

Prima di lavorare su un file, puoi verificare se è leggibile o scrivibile. Per fare ciò, usa le funzioni is_writable () e is_readable ().

<? php echo $ file. (is_readable ($ file)? "": "not"). "leggi. <br>"; echo $ file. (is_writable ($ file)? "": "not"). "è in fase di scrittura.";

Queste funzioni restituiscono un valore booleano e spiegano se l'operazione può essere eseguita sul file.

Il codice stamperà i seguenti valori sullo schermo:

  • C: Windowsfile.ini viene letto.
  • C: Windowsfile.ini non viene scritto.

Utilizzando l'operatore ternario, è possibile indicare se un file è disponibile o meno.

dimensione del file

Per scoprire la dimensione di un file, usa la funzione filesize (). Sarà mostrato in byte.

<? php $ file = "C: Windowsfile.ini"; $ size = filesize ($ file); echo $ file. "ha una dimensione". $ size. "byte.";
Lavorare con php

La funzione visualizzerà quanto segue:

  • C: Windowsfile.ini ha una dimensione di 510 byte.

Utilizzando il file sul sistema Windows quisottolinea una sfumatura. Il backslash ha un significato speciale come carattere di escape. Questo dovrà essere evitato aggiungendo un'altra barra rovesciata.

Se il file non è stato ancora creato, la funzione filesize () indicherà False e un errore. Pertanto, per prima cosa, il file viene controllato per l'esistenza del comando file_exists () richiesto.

<? php $ file = "C: Windowsfile.ini"; if (file_exists ($ file)) {$ size = filesize ($ file); echo $ file. "ha una dimensione". $ size. "byte.";} else {echo $ file. " File non trovato.";}

Il controllo file_exists () dovrebbe quasi sempre essere incluso per sicurezza.

Lettura di file

La sezione precedente mostra quanto puoiconoscere i file con cui si lavora prima di leggerli o scrivervi. Ora puoi analizzare come vengono letti i contenuti del file.

Lavorare in php con file ini

Le funzioni per lavorare con i file PHP semplificano il compito.In questo caso, hai bisogno di file_get_contents (). Leggerà l'intero contenuto del file in una variabile senza dover aprire o chiudere il file stesso. Ciò è utile quando il volume di registrazione è relativamente piccolo, poiché non è sempre razionale in PHP leggere immediatamente 1 GB di dati nell'archivio. Di seguito viene mostrato il lavoro con i file ".ini" e la funzione file_get_contents ().

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

Per file di grandi dimensioni o solo a seconda diesigenze del tuo script, potrebbe essere più saggio gestire i dettagli da solo. Questo perché una volta aperto il file, puoi cercare una nota specifica in esso e leggere tutti i dati che desideri. La funzione fopen () viene utilizzata per aprire un file.

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

La funzione fopen () richiede due argomenti:

  • il file da aprire;
  • la modalità utilizzata in questo caso è "r" per la lettura.

La funzione restituisce un descrittore o un flusso al file, che è memorizzato nella variabile $ file1. Deve essere utilizzato in tutti i comandi successivi quando si lavora con il file.

Valori di modo più comuni
regime valore Posizione del cursore Se il file non esiste?
R solo lettura inizio del file darà un errore
w solo registrazione inizio del file creerà un nuovo
e solo registrazione fine del file creerà un nuovo

Per leggere da un file aperto una riga alla volta, puoi usare la funzione fgets ().

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

Usare un ciclo continuo è una buona cosascelta di sapere in anticipo quante righe ci sono nel file. La funzione feof () controlla se il file ha raggiunto il completamento e il ciclo continua fino a quando non viene raggiunta la fine della condizione del file. Al termine della lettura, la funzione fclose () viene utilizzata per chiudere il documento.

Registrazione di file

Due modalità comunemente utilizzate durante la scrittura su un file con estensioneutilizzando la funzione fwrite (): "w" e "a". "W" significa che devi scrivere nel documento, ma prima cancellerà qualsiasi contenuto, "a" - aggiungendo nuovi dati a ciò che già esiste nel file. Assicurati di utilizzare l'opzione corretta.

Lavorare con file php e ini

Il seguente esempio utilizzerà la modalità "a" per la registrazione.

<? php $ myFile = "files.txt"; $ file1 = fopen ($ myFile, "a"); $ output = "banana". PHP_EOL; fwrite ($ file1, $ output); $ output = "Cina". PHP_EOL; fwrite ($ file1, $ output); fclose ($ file1);

In primo luogo, il nome del file viene assegnato a una variabile, quindisi apre in modalità "a" per aggiungere. I dati da scrivere vengono assegnati alla variabile $ output e fwrite () e le informazioni vengono aggiunte al file. Il processo viene ripetuto per aggiungere un'altra riga, quindi il documento viene chiuso utilizzando fclose ().

La costante predefinita PHP_EOL aggiunge un carattere di nuova riga specifico per la piattaforma su cui PHP viene eseguito con i file di testo.

Il contenuto del file dopo aver eseguito il codice sopra dovrebbe essere simile a questo:

  • Banana;
  • Cina.

Anche la funzione File_put_contents () puòscrivi su file. Richiede un nome file, i dati da scrivere e la costante FILE_APPEND se deve aggiungere dati (sovrascriverà il contenuto del file predefinito).

Ecco lo stesso esempio di cui sopra, ma questa volta utilizzando file_put_contents ().

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

Devi lavorare con queste funzioni frequentemente, quindi è meglio ricordarle. Inoltre, un giorno potrebbero semplificare alcune attività complesse quando si lavora con i file PHP.

piaciuto:
0
Post popolari
Sviluppo spirituale
cibo
y