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.
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. "
Quindi, ecco alcuni motivi per cui potresti aver bisogno di file:
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:
È meglio imparare tutti gli attributi di base per lavorare con i file in PHP. Ciò faciliterà notevolmente il lavoro.
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 ().
<?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:
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 ().
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:
Pertanto, è possibile evitare errori e non aprire "non un file" per incuria. In PHP, lavorare con file e directory è simile.
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:
Utilizzando l'operatore ternario, è possibile indicare se un file è disponibile o meno.
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.";
La funzione visualizzerà quanto segue:
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.
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.
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:
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.
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.
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.
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:
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.