PHP per aspiranti programmatori: E – lavorando con i file

Un sunto sulle scorribande di php precedenti lo si trova all’ indirizzo https://umbriawayincrementa.wordpress.com/2018/12/18/php-per-aspiranti-programmatori-d-funzioni-predefinite/ , adesso analizziamo le operazioni critiche sui file. PHP offre una serie di funzioni da utilizzare durante la creazione, la lettura, il caricamento e la modifica dei file. La funzione fopen () crea o apre un file. Se si utilizza fopen () con un file che non esiste, il file verrà creato, dato che il file è stato aperto per la scrittura (w) o l’accodamento (a).

Utilizzare una delle seguenti modalità per aprire il file.

r: Apri file per sola lettura.
w: Apri il file solo per scrittura. Cancella il contenuto del file o crea un nuovo file se non esiste.
a: Apri file solo per scrittura.
x: crea un nuovo file per sola scrittura.
r +: apre il file per lettura / scrittura.
w +: Apri file per lettura / scrittura. Cancella il contenuto del file o crea un nuovo file se non esiste.
a +: apre il file per lettura / scrittura. Crea un nuovo file se il file non esiste
x +: crea un nuovo file per lettura / scrittura.

L’esempio seguente crea un nuovo file, “file.txt”, che verrà creato nella stessa directory che ospita il codice PHP.

$myfile = fopen(“file.txt”, “w”);

PHP offre una serie di funzioni da utilizzare durante la creazione, la lettura, il caricamento e la modifica dei file.

<code>
<?php
$myfile = fopen(“names.txt”, “w”);

$txt = “John\n”;
fwrite($myfile, $txt);
$txt = “David\n”;
fwrite($myfile, $txt);

fclose($myfile);

/* File contains:
John
David
*/
?>
</code>

Nota che abbiamo scritto due volte il file “names.txt”, e poi abbiamo usato la funzione fclose () per chiudere il file . Il simbolo \ n viene utilizzato quando si scrivono nuove righe. La funzione fclose () chiude un file aperto e restituisce TRUE in caso di successo o FALSE in caso di errore. È una buona pratica chiudere tutti i file dopo aver finito di lavorare con loro. Se si desidera aggiungere contenuto a un file, è necessario aprire il file in modalità append.

$myFile = “test.txt”;
$fh = fopen($myFile, ‘a’);
fwrite($fh, “Some text”);
fclose($fh);

When appending to a file using the ‘a’ mode, the file pointer is placed at the end of the file, ensuring that all new data is added at the end of the file. Creiamo un esempio di un modulo che aggiunge dati compilati a un file.

<code>
<?php
if(isset($_POST[‘text’])) {
$name = $_POST[‘text’];
$handle = fopen(‘names.txt’, ‘a’);
fwrite($handle, $name.”\n”);
fclose($handle);
}
?>
<form method=”post”>
Name: <input type=”text” name=”text” />
<input type=”submit” name=”submit” />
</form>
</code>

Ora, ogni volta che un nome viene inserito e inviato, viene aggiunto al file “names.txt”, insieme a una nuova riga. La funzione isset () determinava se il modulo era stato inviato, nonché se il testo conteneva un valore.
Non abbiamo specificato un attributo di azione per il modulo, quindi verrà inviato a se stesso. La funzione file () legge l’intero file in un array. Ogni elemento all’interno della matrice corrisponde a una riga nel file:

$read = file(‘names.txt’);
foreach ($read as $line) {
echo $line .”, “;
}

Ciò stampa tutte le righe nel file e le separa con virgole. Abbiamo usato il ciclo foreach perché la variabile $ read è una matrice. Alla fine dell’output dell’esempio precedente, avremmo una virgola, poiché la stampiamo dopo ogni elemento dell’array. Il seguente codice ci consente di evitare di stampare la virgola finale.

<code>
$read = file(‘names.txt’);
$count = count($read);
$i = 1;
foreach ($read as $line) {
echo $line;
if($i < $count) {
echo ‘, ‘;
}
$i++;
}
</code>

La variabile $ count utilizza la funzione count per ottenere il numero di elementi nell’array $ read. Quindi, nel ciclo foreach, dopo che ciascuna riga è stata stampata, determiniamo se la linea corrente è inferiore al numero totale di linee e se è stampata una virgola. Ciò evita di stampare la virgola finale, come per l’ultima riga, $ i è uguale a $ count.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...