IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
Richiamare pagine web con cURL

cURL è un insieme di librerie e software che permettono di interfacciarsi con numerosi protocolli di comunicazione, tra i quali HTTP. Il PHP include l'estensione libcurl, che, una volta abilitata, permette di sfruttare le funzionalità offerte da questo pacchetto. Il seguente codice in PHP utilizza libcurl per richiedere una pagina da un webserver (come se fosse un browser), e salvarla in una variabile. Può essere molto utile per inglobare porzioni di pagine web in altre pagine, senza dover ricorrere all'uso di iFrame o altre soluzioni simili. L'aspetto più interessante di questa soluzione è sicuramente quello di poter ottenere il codice HTML puro della pagina web, dopo che i vari codici lato server, come PHP o APS, sono già stati processati.

Codice di curl.php
<?php

# Questo script chiama una pagina dal web come se fosse un browser, 
# e poi la immagazzina in una variabile

# Indirizzo della pagina da richiamare
$indirizzo_pagina="www.giacobbe85.altervista.org";

# Codice di utilizzo di cURL. 
# Chiama la pagina e la immagazzina in $data
$ch curl_init() or die(curl_error());
curl_setopt($chCURLOPT_URL,$indirizzo_pagina);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
$data=curl_exec($ch) or die(curl_error());

# Stampa della variabile $data. 
echo $data;

# Stampa di eventuali errori
echo curl_error($ch);
curl_close($ch);
?>







Inserire la password di amministratore:



Password:

Riga:



Commenti

1 - Giacobbe85   SitoMer 08 Giu 2011 - 09:59:04  

Per essere più specifico, aggiungo che il "Redirect 302" è proprio il codice HTTP di un normale redirect: "google.com" sta rispondendo al browser di re-indirizzarsi automaticamente a "google.it". Tuttavia, dato che Curl in questo script effettua una sola richiesta HTTP, non può seguire il redirect e scaricare la nuova pagina indicata. Se invece scrivi "google.com" da browser, il browser segue il redirect.


2 - Giacobbe85   SitoMer 08 Giu 2011 - 09:53:08  

Ho provato anch'io, e otteno il tuo stesso errore. In realtà lo script funziona, è l'indirizzo "www.google.com" che restituisce quella pagina, che cerca di reindirizzarti a "google.it", come in effetti succede anche quando scrivi "google.com" nella barra del browser.
Se scrivi google.it oppure un qualsiasi altro indirizzo (io ho provato anche con "www.myspace.com" o "www.shinystat.com") funziona.

Ti consiglio comunque di usare lo script per scaricare una pagina specifica, come ad esempio:

"http://www.giacobbe85.altervista.org/down/info/Programmi_e_script/Richiamare_pagine_web_con_cURL.php",

piuttosto che un dominio di secondo livello come
"www.giacobbe85.altervista.org", perchè alle volte sono attivi strani redirect.

Inoltre, ricorda che lo script effettua una sola richiesta http: quella relativa al file html (o php, o asp, ecc) della pagina; non scarica nè gli eventuali fogli di stile css, nè le immagini. Per avere anche quelli devi ri-adattare lo script, o scriverne uno molto più complesso che scarichi tutto (io comunque ho sempre avuto il bisogno di scaricare solo pagine, o solo immagini).

Ciao!


3 - AnonimoMer 08 Giu 2011 - 09:22:34  

non funziona..ho provato a sostituire www.google.com all'indirizzo e mi da come errore

302 Moved

The document has moved here.


Scrivi un commento

Pui scrivere quì sotto un commento all'articolo che hai appena letto. Non sono abilitate smile, immagini e link. La lunghezza massima del commento è 4000 caratteri. La buona educazione è benvenuta, tutti i commenti offensivi saranno cancellati.

Your comment (lascia bianco!):
Utente (max 25 caratteri, obbligatorio)
Sito web (max 255 caratteri, facoltativo)
e-Mail (max 255 caratteri, facoltativa, non sarà pubblicata) Your opinion (lascia bianco!):
Commento (max 4000 caratteri, obbligatorio):





Valid HTML 4.01 Transitional
E-Mail - 34.82 ms

Valid HTML 4.01 Transitional