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

move_uploaded_file

Abbiamo visto come per spostare un file si usi la funzione rename(). Questa funzione viene usata ugualmente per spostare un file, ma agisce solamente sui file caricati via http POST di PHP.

La sintassi è la seguente:

bool move_uploaded_file (string $filename , string $destination)

Se il file no è stato ulpoadato via PHP, non viene spostato e move_uploaded_file() restituirà falso. In generale la funzione restituirà falso anche in caso il file non possa essere spostato per qualsiasi motivo pur essendo un file valido (uploadato via PHP). Se il file di destinazione $destination esiste, verrà sovrascritto.

parse_ini_file

La funzione parse_ini_file() carica il file ini specificato da $filename, e ne restituisce le impostazioni in un array associativo. La sintassi è la seguente:

array parse_ini_file (string $filename [, bool $process_sections ])

Se $process_sections è impostato a TRUE, viene restituito un array multidimensionale con le sezioni all’interno di ciascuna delle quali vengono riportate le impostazioni relative. L’esempio sotto riportato chiarirà la differenza.

Il file .ini deve avere la stessa struttura del file PHP.ini. Quest’ultimo però non può essere letto dalla funzione parse_ini_file().

I commenti sono preceduti da ;

Esempio:

Supponiamo di avere il seguente file .ini:

 

;;; File setup.ini
;;; Creato 28/11/2015

[Version]
Version=123
Released=Fri, 27 Nov 2015 15:27:01

[DefaultProperties]
Browser="DefaultProperties"
Version=0
Win16=false
Win32=false
Win64=true
VBScript=false
JavaApplets=false
JavaScript=false
ActiveXControls=false
isMobileDevice=false

Il seguente script:

 

<?php
$ini_array = parse_ini_file("setup.ini"); // Senza sezioni
print_r($ini_array);
$ini_array = parse_ini_file("setup.ini", true); // Con sezioni
print_r($ini_array);
?>

Produrrà il seguente output:

 

Array
(
    [Version] => 123
    [Released] => Fri, 27 Nov 2015 15:27:01
    [Browser] => "DefaultProperties"
    [Version] => 0
    [Win16] => false
    [Win32] => false
    [Win64] => true
    [VBScript] => false
    [JavaApplets] => false
    [JavaScript] => false
    [ActiveXControls] => false
    [isMobileDevice] => false
)
Array
(
    [Version] => Array
    (
           [Version] => 123
           [Released] => Fri, 27 Nov 2015 15:27:01
    )
    [DefaultProperties] => Array
    (
           [Browser] => "DefaultProperties"
           [Version] => 0
           [Win16] => false
           [Win32] => false
           [Win64] => true
           [VBScript] => false
           [JavaApplets] => false
           [JavaScript] => false
           [ActiveXControls] => false
           [isMobileDevice] => false
    )
)

 

pathinfo

La funzione pathinfo()  restituisce un array associativo con le informazioni relative a $path. Gli elementi riportati nell’array sono: dirname, basename ed extension.

La sintassi è la seguente:

array pathinfo (string $path [, int $options ])

Per default vengono riportati tutti e tre gli elementi, altrimenti se si vuole limitare ad ino o due di essi si possono usare le $options indicando le seguenti costanti: PATHINFO_DIRNAME, PATHINFO_BASENAME e PATHINFO_EXTENSION.

Esempio:

 

<?php
    $info = pathinfo('/www/htdocs/index.php');
    echo $info['dirname'], "\n";
    echo $info['basename'], "\n";
    echo $info['extension'], "\n";
?>

Il risultato sarà:

 

/www/htdocs
index.php
php

rewind

La funzione rewind()  riposiziona il puntatore all’inizio del file .

La sintassi è la seguente:

bool rewind (resource $handle)

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

 

fstat e stat

Queste due funzioni si comportano esattamente nello stesso modo differenziandosi solo per il fatto che fstat() richiede il puntatore al file, mentre stat() richiede il nome del file .

La sintassi di fstat() è la seguente:

array fstat (resource $handle)

La sintassi di stat() invece è:

array stat (string $filename)

Le funzioni ritornano un array con le informazioni relative al file, mentre in caso di errore ritornano FALSE.

L’array è un array associativo dotato altresì di indice da 0 a 12. Il contenuto è descritto nella tabella seguente:

Indice Chiave assoc. Descrizione
0 dev device
1 ino inode
2 mode modalità di protezione dell’inode
3 nlink numero di link
4 uid ID utente del proprietario
5 gid ID del gruppo del proprietario
6 rdev tipo di device con l’inode device
7 size dimensione in byte
8 atime ora dell’ultimo accesso (Unix timestamp)
9 mtime ora del’ultima modifica (Unix timestamp)
10 ctime ora dell’ultimo cambiamento di inode(Unix timestamp)
11 blksize dimensione del blocco per l’I/O di filesystem
12 blocks numero dei blocchi allocati

 

Esempio:

 

<?php
$fp = fopen("prova.html", "r");
$fstat = fstat($fp);
fclose($fp);
print_r(array_slice($fstat, 13));
?>

Il risultato sarà:

Array
(
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 520
    [atime] => 1423239674
    [mtime] => 1423241538
    [ctime] => 1423239674
    [blksize] => -1
    [blocks] => -1
)

 

Lascia un commento

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