Su AlterVista attualmente gli URL-Wrappers (ovvero quelle impostazioni che permettono a funzioni come, fopen, file_get_contents, file, ecc di collegarsi a siti esterni) sono disabilitati e pertanto vedremo alcuni esempi di codice PHP che sfruttano le librerie cURL per ottenere quasi lo stesso risultato che produrrebbero gli URL Wrappers se abilitati.

Requisiti Minimi
  • PHP5

Requisiti Consigliati
  • PHP5
  • Limitazione server2server disabilitata.


Detto ciò passiamo agli esempi pratici:

Come ricavare il codice HTML di un sito

Codice PHP:
<?php

$url
= "http://www.google.it";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch); // $res contiene il codice HTML del sito
curl_close($ch);

echo
"Il codice HTML di <strong>".$url."</strong> è: <hr />".htmlspecialchars($res);

?>
Come scaricare un file

Codice PHP:
<?php

$url
= "http://www.google.it/intl/it_it/images/logo.gif"; // File da salvare, in questo caso un immagine
$path = "file_salvati_con_cURL"; // Path dove salvare il file, senza slash finale

$ch = curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,1);
$res = curl_exec($ch);
curl_close($ch);

$name = basename($url);

$fp = fopen($path."/".$url,"w");
fwrite($fp,$res);
fclose($fp);

?>
Inviare dati ad una pagina con metodo POST

Codice PHP:
<?php

$url
= "http://www.sitoesterno.com/invia_mail.php"; // Pagina a cui inviare i dati
$postvariabili = "variabile1=contenuto_variabile_uno&variabile2=contenuto_variabile_due&variabile3&variabile_vuota=&variabile_5=ecc"; // Variabili da inviare via POST

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postvariabili);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);

echo
$res; // $res contiene la risposta della pagina a cui abbiamo inviato i dati via post