pathIrisPdf = realpath($configuration->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'; $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, $page['body']); fclose($fp); return $page['body']; } } } public function erreur() { return $this->erreur; } }