Goldenweb.it homepage

ANNUNCI | DIRECTORY | FONTS | ICONE | NEWSGROUPS | TOP25 | WALLPAPERS

English version  

ADSL Solution
ADSL solution, le soluzioni per la tua adsl a portata di click, guide, risorse gratis e manuali sui principali modeme router adsl, speedtest, calcolatore distanza dalla centrale, Mio Ip, e port scan, i principali network tools di adslsolution.it.
Fotografo matrimonio
Un team di fotografi professionisti specializzati nei servizi fotografici per matrimoni, operante in tutta Italia.

GoldenWeb.it Directory "Premium" Links - Il tuo link qui...



Capitolo 20. Utilizzo di file remoti

Se allow_url_fopen è abilitato in php.ini, si possono usare URL FTP e HTTP con la maggior parte delle funzioni che richiedono nomi di file come parametri, incluse le funzioni require(), require_once(), include() e include_once(). Vedere Appendice L per maggiori dettagli sui protocolli supportati dal PHP.

Nota: In PHP 4.0.3 e precedenti, al fine di poter utilizzare gli URL wrapper, occorreva specificare l'opzione di configurazione --enable-url-fopen-wrapper.

Nota: Al momento, le versioni Windows di PHP precedenti la 4.3, non supportano l'accesso remoto ai file con le seguenti funzioni: include(), include_once(), require() e require_once() e le funzioni imagecreatefromXXX del modulo Riferimento XLII, Funzioni per le immagini.

Per esempio, si può usare per aprire un file da un web server remoto, elaborare i dati presi da remoto, e usarli per effetuare delle query, o semplicemente visualizzarli con lo stile del proprio sito web.

Esempio 20-1. Leggere il titolo di una pagina web remota

<?php
$file
= fopen ("http://www.example.com/", "r");
if (!
$file) {
    echo
"<p>Impossibile aprire il file remoto.\n";
    exit;
}
while (!
feof ($file)) {
    
$linea = fgets ($file, 1024);
    
/* Funziona solo se title e i relativi tag sono sulla medesima riga */
    
if (eregi ("<title>(.*)</title>", $linea, $out)) {
        
$title = $out[1];
        break;
    }
}
fclose($file);
?>

Si può anche scrivere in un file remoto via FTP (se l'utente con cui ci si connette ha le autorizzazioni necessarie). Si possono solamente creare nuovi file usando questo metodo, se si prova a sovrascrivere un file che già esiste, fopen() non avrà successo.

Per connettersi con un utenti diversi da 'anonymous' si ha bisogno di specificare lo username (e la relativa password) assieme all'URL, in questo modo: 'ftp://user:password@ftp.example.com/directory/del/file'. (Si può usare lo stesso tipo di sintassi per accedere a file via HTTP quando richiedono autenticazione Basic).

Esempio 20-2. Salvataggio di dati su server remoto

<?php
$file
= fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!
$file) {
    echo
"<p>Impossibile aprire il file remoto in scrittura.\n";
    exit;
}
/* Scrive i dati qui. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Nota: Dall'esempio precedente ci si può fare un'idea di come usare questa tecnica per effettuare dei log in remoto, ma come già accennato, con questo sitema non è possibile scrivere con fopen() su file già esistenti. Per fare una procedura di log distribuito è più indicata la funzione syslog().