61 lines
1.6 KiB
PHP
61 lines
1.6 KiB
PHP
|
<?php
|
||
|
class Iris
|
||
|
{
|
||
|
protected static $timeout = 10;
|
||
|
protected $pathIrisPdf;
|
||
|
protected $codeCommune;
|
||
|
protected $erreur = '';
|
||
|
|
||
|
public function __construct($codeCommune)
|
||
|
{
|
||
|
require_once 'common/curl.php';
|
||
|
$configuration = Zend_Registry::get('configuration');
|
||
|
$this->pathIrisPdf = realpath($configuration->path->data).'/iris';
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Récupére l'avis de situtation à partir du site au format pdf
|
||
|
* @param string $format Format 'pdf' ou 'array'
|
||
|
* @param boolean $force True aller obligatoirement le chercher à l'insee
|
||
|
* @return string Le PDF demandé
|
||
|
*/
|
||
|
function get($format='pdf', $force=0)
|
||
|
{
|
||
|
$force=$force*1;
|
||
|
$date=date('Ymd');
|
||
|
if (!file_exists($this->pathIrisPdf)) mkdir($this->pathIrisPdf);
|
||
|
$fichier = $this->pathIrisPdf.'/carte_iris_'.$this->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_'.$this->codeCommune.'.pdf';
|
||
|
$referer = $cookie = '';
|
||
|
$page = getUrl($url, $cookie, '', $referer, false, 'www.insee.fr', '', $this->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')
|
||
|
{
|
||
|
$this->erreur = "Fichier introuvable à l'insee !";
|
||
|
return false;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$fp = @fopen($fichier, "w");
|
||
|
@fwrite($fp, $body);
|
||
|
@fclose($fp);
|
||
|
return $page['body'];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function erreur()
|
||
|
{
|
||
|
return $this->erreur;
|
||
|
}
|
||
|
|
||
|
}
|