ITcms ver. 2.0-open

Realizzazione Sito

Soli 100€!!!

SkinIT

Le skin per ITcms

 

 

 

 

 

 

 

La libreria CURL   Stampa questo documento dal titolo: . Stampa
CURL (Client URL Library) è una estensione di PHP che fornisce l'accesso alle funzioni della libreria libcurl. Queste funzioni permettono ad uno script di connettersi e comunicare con diversi tipi di server, adottando protocolli quali HTTP, HTTPS, FTP, TELNET, ecc.

Per utilizzare CURL gli utenti Windows devono abilitare il caricamento dell'estensione php_curl.dll agendo sul php.ini (basta eliminare il punto e virgola dalla riga ;extension=php_curl.dll).

Numerosi sono i possibili utilizzi di CURL. Di seguito vedremo come sia possibile inviare un file dati.txt da uno script mittente.php ad un ulteriore script destinatario.php. La trasmissione avverrà attraverso il metodo POST dell'HTTP, pertanto sarà come effettuare l'upload di un file. Questa volta però il mittente non sarà il browser ma lo script mittente.php, grazie proprio alle funzioni CURL.

Ecco il listato dello script mittente.php, abbondantemente commentato. Si noti come nella riga 4 per specificare il nome del file da trasmettere sia stato usato il carattere @. In questo modo CURL sa che il campo 'file_dati' dell'ipotetico form che stiamo inviando non contiene la stringa "C:\dati.txt" bensì il file C:\dati.txt.

< ?php
// preparo l'array che conterrà i dati da inviare via POST
// in questo caso c'è solo il file da trasmettere
$dati_post['file_dati'] = "@C:\dati.txt";

// inizializzo la sessione CURL
$ch = curl_init();

// imposto l'URL dello script destinatario
curl_setopt($ch, CURLOPT_URL, "http://localhost/destinatario.php" );

// indico il tipo di comunicazione da effettuare (POST)
curl_setopt($ch, CURLOPT_POST, true );

// indico i dati da inviare attraverso POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $dati_post);

// specifico che la funzione curl_exec dovrà restituire l'output
// prodotto dall'URL contattato (destinatario.php)
// invece di inviarlo direttamente al browser
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// eseguo la connessione e l'invio dei dati e salvo in
// $postResult l'output prodotto dall'URL contattato
$postResult = curl_exec($ch);

// se ci sono stati degli errori mostro un messaggio esplicativo
if (curl_errno($ch)) {
print curl_error($ch);
}

// chiudo la sessione CURL
curl_close($ch);

// mostro l'output prodotto da destinatario.php
echo $postResult;
?>



destinatario.php è invece un semplicissimo script che si occupa esclusivamente di salvare il file ricevuto da mittente.php. In caso di utilizzo reale dello script sarebbe opportuno inserire una serie di controlli per verificare se il processo di upload è stato eseguito correttamente, verifiche non necessarie ai fini di questo esempio.
PLAIN TEXT
PHP:

< ?php
// provo a salvare in "dati_ricevuti.txt" il file ricevuto
if (move_uploaded_file($_FILES['file_dati']['tmp_name'], 'dati_ricevuti.txt'))
{echo "Dati ricevuti con successo";}
else{echo "ERRORE! Problema nella ricezione dei dati";}
?>

Per concludere è importante ricordare che questo tipo di trasmissione è soggetto a i vincoli imposti dal server web ricevente, in particolare ai limiti di dimensione massima del file (direttiva upload_max_filesize del php.ini).

Pubblicazione del: 13-09-2007
nella Categoria Php


« Precedente   Elenco   Successiva »


Titolo Precedente: Firefox va in contro al linguaggio Php.

Titolo Successivo: LITE CMS OPEN SOURCE

Elenco Generale La libreria CURL


LOGIN

  

Registrati

Recupera Password


Calendario Plus

Oggi: 30/07/2010

« Luglio 2010 »
Lu Ma Me Gi Ve Sa Do
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

newsletter


Puoi Iscriverti o Cancellarti

Logo
 

Riferimenti in Rete



 

AdSense

Google:



 

*
Acquista e contribuisci

 

Donazioni



TopHost
logo tophost