Se connecter à un proxy avec CURL PHP
Comment se connecter à un proxy avec un script PHP CURL ?
Le passage par un serveur proxy pour effectuer une requête CURL s'effectue via 3 options :
- CURLOPT_HTTPPROXYTUNNEL qui permet d'indiquer à CURL que l'on veut exécuter la requête via un proxy
 - CURLOPT_PROXY qui permet d'indiquer l'adresse du proxy sous la forme domaine.tld:port
 - CURLOPT_PROXYUSERPWD qui sert, si besoin, à indiquer les nom d'utilisateur et mot de passe de connexion au proxy, sous la forme nom_utilisateur:mot_de_passe
 
<?php
$url = 'https://www.oseox.fr';
$timeout = 10;
$proxy_host = 'my-proxy.com:80'; // host:port
$proxy_ident = ''; // username:password
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if (preg_match('`^https://`i', $url))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Activation de l'utilisation d'un serveur proxy
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
// Définition de l'adresse du proxy
curl_setopt($ch, CURLOPT_PROXY, $proxy_host);
// Définition des identifiants si le proxy requiert une identification
if ($proxy_ident)
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_ident);
$page_content = curl_exec($ch);
curl_close($ch);
echo $page_content;
?>


