Corso PHP: 19 – Leggere e scrivere files (Parte 5^)

filelock

Questa funzione è stata descritta due lezioni fa [Corso PHP: 19 – Leggere e scrivere files (Parte 3^)].

fputcsv

Formatta una riga nel formato CSV e la scrive nel file. La sintassi è la seguente:

int fputcsv (resource $handle, array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]])

Restituisce la lunghezza della stringa o FALSE in caso di fallimento.

Significato dei parametri:

$handle: è il puntatore al file che deve essere scritto. Il file deve essere stato aperto con successo da fopen() (e ovviamente non ancora chiuso).

$fields: è un array di valori che rappresenta le righe che devono essere scritte nel file CSV.

$delimiter: parametro opzionale di 1 carattere che indica il delimitatore usato tra un campo e l’altro. Il default è la virgola.

$enclosure: parametro opzionale di 1 carattere che indica il carattere da usare per delimtare ciascun campo. Il default sono le virgolette (“).

Esempio:

 

<?php
$lista = array (
    "Carlo,Mario,Gianni,Antonio",
    "Maria,Cristina,Anna,Roberta",
);
$file = fopen("nomi.csv","w");
foreach ($lista as $riga) {
    fputcsv($file, explode(',',$riga));
}
fclose($file);
?>

Le due righe scritte nel file CSV saranno:

 

Carlo,Mario,Gianni,Antonio

Maria,Cristina,Anna,Roberta

fscanf

Funzione del tutto analoga a sscanf() presentata quando parlammo della manipolazione delle stringhe, con la sola differenza che prende l’input da un file aperto con fopen() con puntatore $handle. Rimandiamo alla funzione sscanf() per un’analisi dell’utilizzo della funzione.

 fseek

Sposta il puntatore nel file. Può essere usato per esempio per tornare ad inizio file.

La sintassi è la seguente:

int fseek (resource $handle, int $offset [, int $whence ])

$handle è il puntatore al file precedentemente aperto con fopen().

La nuova posizione rispetto all’inizio del file, si ottiene aggiungendo un numero di bytes pari a $offset alla posizione specificata da $whence. Il parametro $whence può essere:

  • SEEK_SET – Imposta la posizione uguale a $offset bytes ($whence=0).
  • SEEK_CUR – Imposta la posizione uguale alla attuale (alla quale va aggiunto $offset).
  • SEEK_END – Imposta la posizione alla fine del file (alla quale va aggiunto $offset).

Per spostare il puntatore n bytes prima di fine file metter $offset = -n e $whence = SEEK_END

Se $whence non viene specificato, si assume per default SEEK_SET.

Esempio:

 

<?php
$fp = fopen('miofile.txt');
$data = fgets($fp, 4096);
// dopodiché si torna ad inizio file
fseek($fp, 0);  // funziona come rewind($fp)
?>

ftruncate

Tronca un file alla lunghezza data. Questa la sintassi:

bool ftruncate (resource $handle, int $size)

Il file viene troncato alla lunghezza data da $size. Restituisce TRUE in caso di successo, FALSE in caso di fallimento.

glob

Restituisce un array che contiene i files e le directories che hanno un match con la stringa di pattern fornita. La sintassi è:

array glob (string $pattern [, int $flags = 0 ])

Il parametro $flags può assumere i seguenti valori:

  • GLOB_MARK – Aggiunge uno slash a ciascuna directory trovata
  • GLOB_NOSORT – L’elenco di files e directories non deve essere ordinato
  • GLOB_NOCHECK – Nel caso non sia trovato alcun file rispondente al criterio di ricerca verrà ritornato il pattern fornito
  • GLOB_NOESCAPE – il carattere di backslash \ non viene trattato come carattere di escape, ma come carattere da ricercare nel pattern
  • GLOB_BRACE – Tratta i patterns tra parentesi graffe, separati da virgole come alternativi in OR. Es. {*.jpg,*.gif,*.png} vuol dire di ritornare nell’array i files di estensione .jpg oppure .gif oppure .png
  • GLOB_ONLYDIR – Include solo le directories
  • GLOB_ERR – Stop al programma in caso di errore di lettura (es directory illeggibile)); per default gli errori sarebbero ignorati.

Nel pattern si possono usare i seguenti caratteri:

* (asterisco) – indica qualsiasi carattere o gruppo di caratteri o anche nessuno.

? – qualsiasi carattere in quella specifica posizione

[…] – un carattere tra quelli del gruppo indicato tra parentesi quadre. ES. [apqz]

[c1-c2] – qualsiasi carattere compreso tra c1 e c2. Es [a-g] equivale al gruppo [abcdefg].

[!…] – qualsiasi carattere non nel gruppo indicato dopo il punto esclamativo. [!a-zA-Z0-9] significa nessun carattere alfanumerico.

\ – Escape del carattere che segue. Es. \[ significa che [ è inteso come carattere del pattern e non come simbolo di gruppo. Se tra i flags c’è GLOB_NOESCAPE, questo è disabilitato e \ trattata come semplice carattere.

is_executable

Ci dice se il file indicato è eseguibile. La sintassi è:

bool is_executable (string $filename)

is_file

Ci dice se il file indicato è un file regolare. La sintassi è:

bool is_file (string $filename)

is_link

Dice se il file indicato è un link. La sintassi è:

bool is_link (string $filename)

is_readable

Ci dice se il file indicato è leggibile. La sintassi è:

bool is_readable (string $filename)

is_uploaded_file

Ci dice se il file indicato è stato caricato via HTTP POST. La sintassi è:

bool is_uploaded_file (string $filename)

is_writable

Ci dice se il file indicato è scrivibile. La sintassi è:

bool is_writable (string $filename)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.