PHP/Programmazione/File: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
G4 (discussione | contributi)
Ramac (discussione | contributi)
completata la pagina
Riga 84:
 
== Altre funzioni ==
Per la lettura dei file esiste anche la funzione <code>'''file'''</code> la cui sintassi è:
file(nome)
e restituisce l'intero contenuto del file <code>nomefile</code> in un array in cui ciascun elemento è una riga contenente anche il carattere di ritorno a capo. Ad esempio:
<source lang=php>$cont = implode("", file("file.txt"));</source>
unisce tutte le riga restituendo quindi l'intero contenuto del file.
<br/>Per eliminare i caratteri di ritorno a capo è possibile usare la funzione <code>'''trim'''</code> che restituisce la stringa passata come argomento eliminando gli spazi bianchi agli estremi.
<br>Per leggere un file e metterlo in una stringa basta fare
<source lang=php>$contenuto=file_get_contents("nomedelfile");</source>
Riga 95:
<source lang=php>$righe=count(file("miofile"));</source>
 
Può risultare inoltre utile la funzione <code>'''stat'''</code> la cui sintassi è:
stat(nome)
e restituisce un array associativo contenente alcune informazione sul file <code>nome</code>. Tra le chiavi dell'array vi sono:
Riga 114:
|Data dell'ultimo accesso e dell'ultima modifica
|}
<code>'''basename'''(file)</code> restituisce invece il nome del file passato come argomento:
<source lang=php>
echo basename('/home/gianni/documento.odt'); //restituisce documento.odt
</source>
 
== Caricare file sul server ==
[[Categoria:PHP|Lavorare con i file]]
PHP mette anche a disposizione, se configurato correttamente, la possibilità di caricare sul server dei file forniti dall'utente. Questo è possibile usando un form HTML che abbiamo metodo POST, <code>enctype="multipart/form-data"</code> e che abbia tra i suoi campi un input con <code>type="file"</code>.
{{Avanzamento|75%}}
Prendiamo ad esempio questo spezzone di codice:
<source lang=html4strict>
<form method="post" enctype="multipart/form-data" action="caricafile.php">
Selezionare il file da caricare: <input type="file" name="file1" />
<input type="submit" value="carica" />
</source>
Nel file di destinazione avremo a destinazione un array <code>$_FILES</code> che conterrà le informazioni sui file caricati per ora in una directory temporanea sul server:
<source lang=php>
echo "Nome temporaneo del file sul server, assegnato da PHP: ".$_FILES['file1']['tmp_name']; //per esempio /tmp/php-234
echo "<br/>Nome del file sul disco rigido dell'utente: ".$_FILES['file1']['name']; //ad esempio C:\image.png
echo "<br/>Dimensione del file: ".$_FILES['file1']['size']; //ad esempio 2000
echo "<br/>Tipo di file (se fornito dal browser): ".$_FILES['file1']['type']; //per esempio, image/png
</source>
Si noti che il percorso del file sul server viene assegnato temporaneamente da PHP in una directory impostata nel file di configurazione di PHP.
 
Per poi copiare definitivamente il file sul server (quello temporaneo viene poi eliminato da PHP alla fine della sessione), usiamo la funzione <code>move_uploaded_file</code>:
<source lang=php>
$source = $_FILES['file1']['name'];
$dest = basename($_FILES['file1']['tmp_name']);
move_uploaded_file($source, "archivio/".$dest); //salva il file in una cartella apposita
</source>
[[Categoria:PHP|Lavorare con i fileFile]]
{{Avanzamento|75100%}}