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
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