extranet/batch/getBodaccPdf.php

102 lines
3.2 KiB
PHP

<?php
if ($argc != 4){
echo $argv[0].' type annee num';
echo "\n";
exit;
}
$type = strtoupper($argv[1]);
$annee = $argv[2];
$num = $argv[3];
$c = strlen($num);
for($i=0;$i<4-$c;$i++){
$num = '0'.$num;
}
$annonce = 1;
function getPage($url, $curl_data = '', $verbose=false)
{
global $ckfile;
//$user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
//$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
$user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
$post = false;
$fields = '';
if (is_array($curl_data) && count($curl_data)>0) {
foreach($curl_data as $key=>$value) {
$fields .= $key.'='.$value.'&';
}
rtrim($fields,'&');
$post = true;
}
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $user_agent, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => $post, // i am sending post data
CURLOPT_POSTFIELDS => $fields, // this are my post vars
CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
CURLOPT_SSL_VERIFYPEER => false, //
CURLOPT_VERBOSE => $verbose , //
//CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => $ckfile,
CURLOPT_COOKIEJAR => $ckfile, // Stockage du cookie de session
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$header = curl_getinfo($ch);
curl_close($ch);
// $header['errno'] = $err;
// $header['errmsg'] = $errmsg;
// $header['content'] = $content;
return array('header'=>$header, 'content'=>$content);
}
//==> Start
$debug = false;
$config = parse_ini_file(dirname(__FILE__).'/../application/configs/configuration.ini', true);
$directory = $config['path']['data'].'/bodacc';
//Ajout du type de bodacc
$directory.= '/'.$type;
if ( !file_exists($directory) ) mkdir($directory);
//Ajout de l'annee
$directory.= '/'.$annee;
if ( !file_exists($directory) ) mkdir($directory);
//Define cookie file for storage
$ckfile = dirname(__FILE__).'/'.uniqid('cookies-');
echo $url = "http://www.bodacc.fr/index.php?action=voir&p=$type&n=$annee$num&a=$annonce";
echo "\n";
$result = getPage($url);
if ($debug) file_put_contents('bodacc1.html', $result['content']);
preg_match('/\<a href="index\.php\?action=pdf&amp;index=([0-9]{1,})"\>/', $result['content'], $matches);
echo $url = "http://www.bodacc.fr/index.php?action=pdf&index=".$matches[1];
echo "\n";
$result = getPage($url);
if (substr($result['content'],0,4)!='%PDF'){
if ($debug) file_put_contents('bodacc2.html', $result['content']);
echo "Erreur téléchargement du PDF.";
echo "\n";
exit;
}
file_put_contents($directory."/BODACC_".$type."_".$annee."_".$num.".pdf", $result['content']);
echo "\n";
if (file_exists($ckfile)) unlink($ckfile);