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 32 33 34 35
|
/**
* $url : l'URL de la page distante
* $timeout : timeout en secondes (requière une version > 5.2.1 pour être effectif)
* $nom_local : fichier où sera écrit le corps de la page distante (inutilisé si la valeur de ce paramètre est assimilable à FALSE
* $post : les données POST à envoyer, sous la forme d'un tableau PHP ou d'une string gérée par vos soins (urlencodée)
**/
function recuperer_page($url, $timeout = 10, $nom_local = '', $post = NULL)
{
$infos = parse_url($url);
$contexte = NULL;
if ($post) {
$options = array(
'http' => array(
'method' => $post ? 'POST' : 'GET',
'header' => '',
'timeout' => $timeout // Effectif pour les versions 5.2.1 et supérieures
)
);
if ($post) {
$data = http_build_query($post);
$options['http']['header'] .= "Content-type: application/x-www-form-urlencoded\r\n";
$options['http']['header'] .= 'Content-Length: ' . strlen($data) . "\r\n";
$options['http']['content'] = $data;
}
$contexte = stream_context_create($options);
}
$content = file_get_contents($url, FALSE, $contexte);
if ($nom_local) {
if (!file_put_contents($nom_local, $content)) {
return FALSE;
}
}
return $content;
} |
Partager