2013-11-18 14:49:04 +00:00

58 lines
1.5 KiB
PHP

<?php
class Scores_Insee_Iris
{
protected static $timeout = 10;
protected $pathIrisPdf;
protected $codeCommune;
protected $erreur = '';
public function __construct($codeCommune)
{
$c = Zend_Registry::get('config');
$this->pathIrisPdf = realpath($c->profil->path->data).'/iris';
$this->codeCommune = $codeCommune;
}
/**
* 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';
try {
$client = new Zend_Http_Client($url);
$client->setStream();
$response = $client->request('GET');
if ($response->isSuccessful() && substr($response->getBody(),0,4)=='%PDF') {
copy($response->getStreamName(), $fichier);
} else {
$this->erreur = "Fichier introuvable à l'insee !";
return false;
}
} catch (Zend_Http_Client_Exception $e) {
return false;
}
}
}
public function erreur()
{
return $this->erreur;
}
}