(PHP 4, PHP 5)
file — Legge l'intero file in un vettore
$filename
[, int $use_include_path
[, resource $context
]] )
Identica a readfile(), eccetto per il fatto che
file() restituisce il file in un vettore. Ogni
elemento del vettore corrisponde ad una riga del file, con il carattere di
newline ancora inserito. Se la funzione non riesce restituisce
FALSE
.
Puoi impostare il secondo parametro, use_include_path
, (opzionale) ad "1",
se vuoi cercare il file nel include_path.
<?php
// inserisce una pagina web in un array e la stampa. In questo esempio useremo il protocollo
// HTTP per ottenere il sorgente di un URL
$lines = file('http://www.example.com/');
// Ciclo attraverso l'array, si visualizzerà il sorgente come html ed i numeri di linea
foreach($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// Un'altro esempio, inserisce la pagina web in una stringa. Vedere anche file_get_contents().
$html = implode('', file ('http://www.example.com/'));
?>
È possibile utilizzare una URL come un nome di file con questa funzione se fopen wrappers è stata abilitata. Vedere fopen() per maggiori informazioni su come specificare i nomi di file. Vedere Supported Protocols and Wrappers per i link verso le informazioni sulle capacità dei vari wrapper, note sul loro uso, informazioni sulle variabili predefinite che forniscono.
Nota:
Ciascuna riga dell'array restituito conterrà il carattere di fine riga, occorre, pertanto, utilizzare rtrim() se si desidera rimuovere il carattere di fine riga.
Nota: Se si hanno problemi con il PHP che non riconosce i fine linea leggendo file creati o ospitati su un computer Macintosh, si può abilitare l'opzione auto_detect_line_endings della configurazione di runtime.
Nota:
A partire da PHP 4.3.0 si può utilizzare file_get_contents() per memorizzare il contenuto di un file in una stringa in formato binario.
Nota: Il supporto per il contesto è stato aggiunto in PHP 5.0.0. Per la descrizione del contesto, fare riferimento a Stream Funzioni.
Quando si usa SSL, Microsoft IIS viola il protocollo chiudendo la connessione senza inviare un'indicazione close_notify. PHP indicherà questo con un "SSL: Fatal Protocol Error" al raggiungimento della fine dei dati. Per aggirare questo problema, occorre abbassare il livello error_reporting per non includere questi avvisi. PHP 4.3.7 e successivi sono in grado di identificare gli IIS bacati quando si apre lo stream utilizzando il wrapper https:// e disabilitano automaticamente l'avviso. Se si usa fsockopen() per creare un socket ssl://, occorre identificare e sopprimere l'avviso manualmente.
Vedere anche readfile(), fopen(), fsockopen(), popen(), file_get_contents() e include.