456 lines
30 KiB
PHP
456 lines
30 KiB
PHP
<?
|
||
|
||
include_once(FWK_PATH.'common/curl.php');
|
||
|
||
define('HOST_INSEE', 'avis-situation-sirene.insee.fr');
|
||
define('SITE_INSEE', 'http://'. HOST_INSEE .'/');
|
||
|
||
class MSirene {
|
||
|
||
private $response1;
|
||
|
||
function __construct() {
|
||
|
||
/** Etape de connexion au site de l'INSEE pour simuler correctement un utilisateur WEB
|
||
**/
|
||
$this->response1=getUrl(SITE_INSEE,'','','',false,HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'SIRENET_Script/Accueil/script_page_accueil.asp',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/frame_interrogation.asp?ACTION=nouvelle&Niveau=siren',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_haut.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_bas.asp?grille=siren&action=nouvelle', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
|
||
//sleep(1);
|
||
|
||
}
|
||
|
||
/**
|
||
* R<>cup<75>re les informations relatives <20> un <20>tablissement et son entreprise (par d<>faut le si<73>ge si pas de NIC)
|
||
*
|
||
* @param unknown_type $sirenLu
|
||
* @param unknown_type $nicLu
|
||
*/
|
||
function getInfoEtab($sirenLu, $nicLu='') //if ($argv[1]=='id' || $argv[1]=='pj')
|
||
{
|
||
$tabRet=array();
|
||
|
||
/** Param<61>tre de requ<71>te "option" <20> l'insee :
|
||
** 1: Fiche du si<73>ge + Donn<6E>es entreprises
|
||
** 2: Tous les <20>tablissements de l'entreprise
|
||
** 3: Un <20>tablissement particulier
|
||
** 4: D<>partement
|
||
**/
|
||
if ($nicLu<>'') $option=3;
|
||
else $option=1;
|
||
|
||
// Requ<71>te d'interrogation
|
||
$postData=array('siren'=>$sirenLu,
|
||
'option'=>$option,
|
||
'nic'=>$nicLu,
|
||
'dep'=>'',
|
||
'listeDep'=>'');
|
||
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $this->response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle',false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=nouveau', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
|
||
if ($responseQ['code']==302)
|
||
{
|
||
//$libelleErreur='Erreur INSEE inconnue 1';
|
||
|
||
// Siren Invalide ou autre erreur non r<>pertori<72>e !
|
||
$header=$responseQ['header'];
|
||
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
|
||
{
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
|
||
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur',false,HOST_INSEE);
|
||
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
|
||
if ($pos>0){
|
||
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
|
||
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
|
||
} else
|
||
$tabRet['erreur']='Erreur INSEE inconnue';
|
||
}
|
||
else
|
||
{ if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege')
|
||
// L'<27>tablissement demand<6E> est un si<73>ge !
|
||
$option=1;
|
||
|
||
if ($option==3)
|
||
{
|
||
// On d<>roule les URLs d'appels <20>tablissement
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
|
||
//sleep(1);
|
||
// Frames r<>ponse niveau Etab
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
|
||
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement',false,HOST_INSEE);
|
||
$responseEtab=$responseEtab['body'];
|
||
// On recherche si on est bien sur un fiche <20>tablissement
|
||
$pos=strpos($responseEtab, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
|
||
if ($pos<1)
|
||
$tabRet['erreur']='Erreur SCRIPT Fiche Etablissement non trouv<75>e';
|
||
$responseSiege=$responseEtab;
|
||
}
|
||
else
|
||
{
|
||
// On d<>roule les URLs d'appels Si<53>ges
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false',false,HOST_INSEE);
|
||
//sleep(1);
|
||
// Frames r<>ponse niveau si<73>ges
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
|
||
$responseSiege=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege',false,HOST_INSEE);
|
||
$responseSiege=$responseSiege['body'];//strip_tags(html_entity_decode(), '<td>');
|
||
// On recherche si on est bien sur un fiche si<73>ge
|
||
$pos=strpos($responseSiege, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche si<73>ge</B>');
|
||
if ($pos<1)
|
||
$tabRet['erreur']='Erreur SCRIPT Fiche Si<53>ge non trouv<75>e';
|
||
}
|
||
|
||
// Niveau entreprise
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege',false,HOST_INSEE);
|
||
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=entreprise',false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
|
||
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail', false,HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail',false,HOST_INSEE);
|
||
$responseEntreprise=$responseEntreprise['body'];
|
||
$pos=strpos($responseEntreprise, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Entreprise</B>');
|
||
if ($pos<1) {
|
||
$tabRet['erreur']='Erreur SCRIPT Fiche Entreprise non trouv<75>e';
|
||
}
|
||
|
||
/** Recherche des donn<6E>es <20>tablissement
|
||
**/
|
||
$tabRet['etablissement']=$this->getDataEtablissement($responseSiege);
|
||
|
||
/** Recherche des donn<6E>es entreprise
|
||
**/
|
||
$tabRet['entreprise']=$this->getDataEntreprise($responseEntreprise);
|
||
|
||
return $tabRet;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* R<>cup<75>re la liste de tous les <20>tablissements d'une entreprise
|
||
*
|
||
* @param unknown_type $sirenLu
|
||
*/
|
||
function getListeEtabs($sirenLu)
|
||
{
|
||
// Requ<71>te d'interrogation
|
||
$postData=array('siren'=>$sirenLu,
|
||
'option'=>2,
|
||
'nic'=>'',
|
||
'dep'=>'',
|
||
'listeDep'=>'');
|
||
|
||
$response=getUrl(SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', $this->response1["header"]["Set-Cookie"], $postData, SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?grille=siren&action=nouvelle', false, HOST_INSEE);
|
||
$action='nouveau';
|
||
$referer=SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false';
|
||
$nbRepTot=$pageCour=$nbTotPage=$nbRepParPage=$numEtab=0;
|
||
$tabInfoEtab=array();
|
||
$tabRet=array();
|
||
|
||
while(true)
|
||
{
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action='.$action, $this->response1["header"]["Set-Cookie"], '', $referer, false, HOST_INSEE);
|
||
if ($responseQ['code']==302)
|
||
{
|
||
//$libelleErreur='Erreur INSEE inconnue 1';
|
||
|
||
// Siren Invalide ou autre erreur non r<>pertori<72>e !
|
||
$header=$responseQ['header'];
|
||
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur')
|
||
{
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
|
||
$responseErreur=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Erreur_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=erreur', false, HOST_INSEE);
|
||
$pos=strpos($responseErreur['body'], '<td valign=top bgcolor="#FFCC33"><font face=Arial size=2><b>');
|
||
if ($pos>0){
|
||
$posFin=strpos($responseErreur['body'], '</b></font></td>', $pos+60);
|
||
$libelleErreur=trim(substr($responseErreur['body'], $pos+60, $posFin-($pos+60)));
|
||
} else
|
||
$libelleErreur='Erreur INSEE inconnue';
|
||
}
|
||
|
||
// On d<>roule les URLs d'appels liste des <20>tablissements
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
|
||
//sleep(1);
|
||
// Frames r<>ponse niveau Etab
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
|
||
$responseListe=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Liste_bas.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=liste', false, HOST_INSEE);
|
||
$responseListe=$responseListe['body'];
|
||
|
||
$pos=strpos($responseListe, 'Nombre total de r<>ponses : '."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
|
||
if ($pos>0) {
|
||
$posFin=strpos($responseListe, '</b></font>', $pos+73);
|
||
$nbRepTot=trim(substr($responseListe, $pos+73, $posFin-($pos+73)));
|
||
}
|
||
$pos=strpos($responseListe, ' - Affichage de la page '."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
|
||
if ($pos>0) {
|
||
$posFin=strpos($responseListe, ' - </b></font>', $pos+75);
|
||
$strPages=trim(substr($responseListe, $pos+75, $posFin-($pos+75)));
|
||
$tabPages=explode(' / ', $strPages);
|
||
$pageCour=$tabPages[0];
|
||
$nbTotPage=$tabPages[1];
|
||
}
|
||
$pos=strpos($responseListe, ' - </b></font>'."\r\n\t\t\t".'<font face="Arial" size="2"><b>');
|
||
if ($pos>0) {
|
||
$posFin=strpos($responseListe, '</b></font>', $pos+60);
|
||
$nbRepParPage=trim(substr($responseListe, $pos+60, $posFin-($pos+60)));
|
||
}
|
||
|
||
/* TODO = R<>cup<75>rer les infos <20>tab + entrep pour chaque ligne du tableau !!!*
|
||
*/
|
||
if ($libelleErreur=='Erreur SCRIPT Inconnue')
|
||
$libelleErreur='';
|
||
for ($i=1;$i<11; $i++)
|
||
{
|
||
if ($numEtab==$nbRepTot)
|
||
break; // Il n'y a pas plus d'<27>tablissement <20> r<>cup<75>rer ! On sort...
|
||
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/question.asp?action=detail&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp', false, HOST_INSEE);
|
||
if ($responseQ['code']==302)
|
||
{
|
||
// Siren Invalide ou autre erreur non r<>pertori<72>e !
|
||
$header=$responseQ['header'];
|
||
if (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i)
|
||
{
|
||
// On d<>roule les URLs d'appels fiche si<73>ge
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
|
||
//sleep(1);
|
||
// Frames r<>ponse niveau Etab
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=siege', false, HOST_INSEE);
|
||
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=siege&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=siege&numtableau='.$i, false, HOST_INSEE);
|
||
$responseEtab=$responseEtab['body'];
|
||
|
||
// R<>cup<75>ration de la fiche entreprise INSEE
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=siege&numtableau='.$i.'&origine=liste', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/frame_reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
|
||
$responseEntreprise=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=entreprise&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/reponse/Frame_Reponse.asp?niveau=entreprise&dest=detail&origine=liste&numtableau='.$i, false, HOST_INSEE);
|
||
$responseEntreprise=$responseEntreprise['body'];
|
||
}
|
||
elseif (trim($header['Location'])=='/REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i)
|
||
{
|
||
// On d<>roule les URLs d'appels <20>tablissement
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement&numtableau='.$i, $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Interrogation/Interrogation_principal.asp?action=valider&grille=siren&waitframe=false', false, HOST_INSEE);
|
||
//sleep(1);
|
||
// Frames r<>ponse niveau Etab
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_menu.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'SIRENET_Script/Interrogation/script_recherche_barre_haut.asp?niveau=siren', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Reponse_haut.asp', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?dest=detail&niveau=etablissement', false, HOST_INSEE);
|
||
$responseEtab=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_principal.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, false, HOST_INSEE);
|
||
$responseQ=getUrl(SITE_INSEE .'REPERTOIRE/Reponse/Detail_bas.asp?niveau=etablissement&numtableau='.$i.'&origine=liste', $this->response1["header"]["Set-Cookie"], '', SITE_INSEE .'REPERTOIRE/Reponse/Frame_Reponse.asp?origine=liste&dest=detail&niveau=etablissement&numtableau='.$i, false, HOST_INSEE);
|
||
$responseEtab=$responseEtab['body'];
|
||
}
|
||
$tabRet['etablissements'][$numEtab]=$this->getDataEtablissement($responseEtab);
|
||
$tabRet['entreprise']=$this->getDataEntreprise($responseEntreprise);
|
||
|
||
if ($libelleErreur<>'' && $tabInfoEtab['siret'] =='') $siret=$sirenLu . $nicLu;
|
||
else $siret=$tabInfoEtab['siret'];
|
||
|
||
/*$str= date('d/m/Y <20> H:i:s') .';'.
|
||
$libelleErreur .';'.
|
||
// Si<53>ge
|
||
$siret .';'.
|
||
$tabInfoEtab['active'] .';'.
|
||
$tabInfoEtab['dateAbsActivite'] .';'.
|
||
$tabInfoEtab['typeEtablissement'] .';'.
|
||
$tabInfoEtab['dateMAJ'] .';'.
|
||
$tabInfoEtab['dateCreation'] .';'.
|
||
$tabInfoEtab['raisonSociale'] .';'.
|
||
$tabInfoEtab['Enseigne'] .';'.
|
||
$tabInfoEtab['NafCode'] .';'.
|
||
$tabInfoEtab['NafLib'] .';'.
|
||
$tabInfoEtab['AdresseLigne1'] .';'.
|
||
$tabInfoEtab['AdresseLigne2'] .';'.
|
||
$tabInfoEtab['AdresseLigne3'] .';'.
|
||
$tabInfoEtab['etatJuridique'] .';'.
|
||
$tabInfoEtab['dateEtatJuridique'] .';'.
|
||
// Entreprise
|
||
$tabInfoEntrep['dateCreationEntrep'] .';'.
|
||
$tabInfoEntrep['raisonSocialeEntrep'] .';'.
|
||
$tabInfoEntrep['sigle'] .';'.
|
||
$tabInfoEntrep['NafCodeEntrep'] .';'.
|
||
$tabInfoEntrep['NafLibEntrep'] .';'.
|
||
$tabInfoEntrep['FJCodeEntrep'] .';'.
|
||
$tabInfoEntrep['FJLibEntrep'] .';'.
|
||
$tabInfoEntrep['nbEtabActifs'] .';';
|
||
*/
|
||
//fwrite($fpOUT, $str."\r\n");
|
||
$numEtab++;
|
||
$num=$key+1;
|
||
$typeEtablissement=$tabInfoEtab['typeEtablissement'];
|
||
//echo "Question $num/$nbLignes : Demande=$sirenLu$nicLu Etablissement $numEtab/$nbRepTot $typeEtablissement=$siret $libelleErreur\r\n";
|
||
flush();
|
||
sleep(1);
|
||
|
||
}//end for
|
||
}//end if
|
||
if ($pageCour==$nbTotPage) {
|
||
// On sort de la boucle de passage <20> la page de liste suivante car il n'y a plus d'autres pages
|
||
break;
|
||
} else {
|
||
$action='listeplus';
|
||
$referer=SITE_INSEE .'REPERTOIRE/Reponse/Liste_principal.asp';
|
||
}
|
||
}
|
||
} //Fin While
|
||
return $tabRet;
|
||
}
|
||
|
||
private function getDataEtablissement($pageHtml)
|
||
{
|
||
global $libelleErreur;
|
||
|
||
$responseSiege=$pageHtml;
|
||
$tabRet=array();
|
||
|
||
// On recherche si on est sur un <20>tablissement si<73>ge ou secondaire
|
||
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche Etablissement</B>');
|
||
if ($pos>0)
|
||
$tabRet['typeEtablissement']='secondaire';
|
||
|
||
$pos=strpos($pageHtml, '<table cols="2" width="100%"><tr><td bgcolor="#FFCC33" align="left"><font face="Arial" size="2"><B>Fiche si<73>ge</B>');
|
||
if ($pos>0)
|
||
$tabRet['typeEtablissement']='si<73>ge';
|
||
|
||
// Recherche Derni<6E>re MAJ / Activit<69>
|
||
$pos=strpos($responseSiege, '<font face="Arial" size="2">(derni<6E>re mise <20> jour :');
|
||
if ($pos>0) {
|
||
$tabRet['dateMAJ']=substr($responseSiege, $pos+51, 10);
|
||
$tabRet['dateAbsActivite']='';
|
||
$tabRet['active']='O';
|
||
} else {
|
||
$tabRet['active']='N';
|
||
$tabRet['dateMAJ']='';
|
||
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence d\'activit<69> not<6F>e le : ');
|
||
if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10);
|
||
else {
|
||
$pos=strpos($responseSiege, '<font face="Arial" size="2">Absence d\'activit<69>');
|
||
if ($pos>0) $tabRet['dateAbsActivite']='';
|
||
}
|
||
}
|
||
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>n<> SIRET :</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
|
||
$tabRet['siret']=str_replace('<27>', '', html_entity_decode(substr($responseSiege, $pos+97, 32)));
|
||
|
||
$pos=strpos($responseSiege, 'size="-1"> <B>Date de cr<63>ation :</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
|
||
if ($pos>0) {
|
||
$posFin=strpos($responseSiege, '</font>', $pos+109);
|
||
$tabRet['dateCreation']=str_replace('<27>', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109))));
|
||
}
|
||
else $tabRet['dateCreation']='';
|
||
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$len=127;
|
||
if ($pos==0){
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$len=122;
|
||
if ($pos==0){
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>Raison sociale et Enseigne :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$len=126;
|
||
$libelleErreur='Informations INSEE non diffusables';
|
||
}
|
||
}
|
||
if ($libelleErreur=='') {
|
||
//LARGE*DOMINIQUE MICHEL/ <BR>GERANT SARL BIMAGIQUE </font>
|
||
$posFin=strpos($responseSiege, '</font>', $pos+$len);
|
||
$raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len)));
|
||
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
|
||
$tabRet['raisonSociale']=trim(str_replace('<27>', '', html_entity_decode($raisonSocialeTabLigne[0])));
|
||
$tabRet['Enseigne']=trim(str_replace('<27>', '', html_entity_decode(@$raisonSocialeTabLigne[1])));
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>Activit<69> principale :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$tabRet['NafCode']=substr($responseSiege, $pos+120, 4);
|
||
$tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70));
|
||
|
||
$pos=strpos($responseSiege, ' size="-1"> <B>Adresse :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$posFin=strpos($responseSiege, '</font>', $pos+103);
|
||
$AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103));
|
||
$AdresseTabLigne=explode('<BR>', $AdresseStr);//'
|
||
$tabRet['AdresseLigne1']=str_replace(' ', '/', $AdresseTabLigne[0]);
|
||
$tabRet['AdresseLigne2']=str_replace(' ', '/', $AdresseTabLigne[1]);
|
||
$tabRet['AdresseLigne3']=str_replace(' ', '/', $AdresseTabLigne[2]);
|
||
/*
|
||
$AdresseNum=$AdresseTabLigne1[0];
|
||
$AdresseVoi=$AdresseTabLigne1[1];
|
||
$AdresseRue=$AdresseTabLigne1[2];
|
||
$AdresseCP=$AdresseTabLigne2[0];
|
||
$AdresseVille=$AdresseTabLigne2[1];
|
||
*/
|
||
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise est connue au r<>pertoire comme ');
|
||
if ($pos>0) {
|
||
$posFin=strpos($responseSiege, '</b>', $pos+106);
|
||
$tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106)));
|
||
$tabRet['dateEtatJuridique']='';
|
||
} else {
|
||
$pos=strpos($responseSiege, '<font face="Arial" size="-1"><b>L\'entreprise est cess<73>e le : ');
|
||
$tabRet['dateEtatJuridique']=substr($responseSiege, $pos+86, 10);
|
||
$tabRet['etatJuridique']='cess<73>e';
|
||
}
|
||
//echo 'GetDataEtab="'.$libelleErreur."\"\r\n";
|
||
return $tabRet;
|
||
}
|
||
}
|
||
|
||
|
||
private function getDataEntreprise($pageHtml)
|
||
{
|
||
global $libelleErreur;
|
||
|
||
$responseEntreprise=$pageHtml;
|
||
$tabRet=array();
|
||
|
||
if ($libelleErreur=='') {
|
||
|
||
$pos=strpos($responseEntreprise, 'size="-1"> <B>Date de cr<63>ation :</B></FONT></td><td valign="top"><font face="Arial" size="-1">');
|
||
if ($pos>0)
|
||
$tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10);
|
||
else
|
||
$tabRet['$dateCreationEntrep']='';
|
||
|
||
// Raison sociale et Sigle
|
||
$pos=strpos($responseEntreprise, ' size="-1"> <B>Raison sociale et Sigle :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$posFin=strpos($responseEntreprise, '</font>', $pos+123);
|
||
$raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123)));
|
||
$raisonSocialeTabLigne=explode('<BR>', $raisonSocialeStr);
|
||
$tabRet['raisonSocialeEntrep']=trim(str_replace('<27>', '', html_entity_decode($raisonSocialeTabLigne[0])));
|
||
$tabRet['sigle']=trim(str_replace('<27>', '', html_entity_decode(@$raisonSocialeTabLigne[1])));
|
||
|
||
// Activit<69> prinicpale Entrep
|
||
$pos=strpos($responseEntreprise, ' size="-1"> <B>Activit<69> principale :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4);
|
||
$tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70));
|
||
|
||
// Forme Juridique
|
||
$pos=strpos($responseEntreprise, ' size="-1"> <B>Forme juridique :</B></FONT></td><td valign="top" colspan="3"><font face="Arial" size="-1">');
|
||
$tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4);
|
||
$tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70));
|
||
|
||
// Nb Etab Actifs
|
||
$tabRet['nbEtabActifs']=trim(str_replace('<27>', '', html_entity_decode(@getTextInHtml($responseEntreprise, '<B>Nb <3B>tablissements actifs :</B>', '<font face="Arial" size="-1">', '</font>'))));
|
||
}
|
||
return $tabRet;
|
||
}
|
||
|
||
}
|
||
|
||
?>
|