extranet/www/pages/iris.php
2011-10-18 09:36:38 +00:00

68 lines
1.9 KiB
PHP

<?php
//Attente requête auprès du site AVIS INSEE
define('TIMEOUT', 10);
require_once 'common/curl.php';
$codeCommune = $_REQUEST['code'];
/**
* Récupére l'avis de situtation à partir du site au format pdf
*
* @param integer $siret Siren ou Siret de l'établissment
* @param string $format Format 'pdf' ou 'array'
* @param boolean $force True aller obligatoirement le chercher à l'insee
* @return string Le PDF demandé
*/
function getDocIris($codeCommune, $format='pdf', $force=0)
{
$force=$force*1;
$date=date('Ymd');
$siren=trim(substr($siret,0,9));
$nic=trim(substr($siret,9,5));
$dir = PATH_DATA.'/iris';
if (!file_exists($dir)) mkdir($dir);
$fichier = $dir.'/carte_iris_'.$codeCommune.'.pdf';
if ($format!='pdf') return 'Format pdf uniquement';
if ($force==0 && file_exists($fichier))
{
// On délivre le fichier
return file_get_contents($fichier);
}
else
{
$url = 'http://www.insee.fr/fr/methodes/zonages/iris/cartes/carte_iris_'.$codeCommune.'.pdf';
$referer = $cookie = '';
$page = getUrl($url, $cookie, '', $referer, false, 'www.insee.fr', '', TIMEOUT);
//Code en 4xx ou 5xx signifie une erreur du serveur
$codeN = floor($page['code']/100);
if($codeN==4 || $codeN==5 || substr($page['body'],0,4)!='%PDF')
{
return false;
}
else
{
$fp = @fopen($fichier, "w");
@fwrite($fp, $body);
@fclose($fp);
return $page['body'];
}
}
}
// ==> Start
$body = getDocIris($codeCommune, 'pdf', 0);
if($body !== false)
{
header("Pragma: public");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate");
header("Content-type: application/pdf");
header("Content-Length: ".strlen($body));
header('Content-disposition: inline; filename="carte_iris_'.$codeCommune.'.pdf"');
header("Accept-Ranges: ".strlen($body));
echo $body;
} else {
echo "Fichier inexistant à l'insee !";
}