Lorsque vous avez dans notre famille, une personne qui gère un annuaire d'entreprise de la région, cette personne m'a demandé s'il était possible de suivre l'actualité en terme de créations et de fermetures d'entreprises de notre belle région Lorraine.
Et si cette demande m'a été faite, c'est qu'il sait très bien que je m'intéresse à l'open data !
Aujourd'hui je vous présente un vieux script que je n'ai encore jamais présenté ici, qui s'appuie sur des données extraites en Open Data du site data Infogreffe, à partir duquel il vous est possible de générer une URL avec des tas de paramètres que nous allons voir, qui permet de suivre l'actualité en terme de création d'entreprise de la région.
 

L'URL générée pour récupérer ces informations

Comme nous pouvons le voir, cette URL dans laquelle se trouve ces informations, génère des données en Open Data, qui sont toujours issues par jeux de données annuelles. C'est la raison pour laquelle, dans ma chaîne de caractères générant cette url, nous avons la fonction date avec le paramètre Y qui permet, en PHP, simplement de récupérer l'année en cours. Dans cette URL, qui n'est donc pas une constante, c'est le seul petit paramètre auquel il faut faire attention pour générer le flux RSS que nous avons désormais étudier.
L'URL est donc de la sorte : 
$url = "https://opendata.datainfogreffe.fr/api/records/1.0/search/?dataset=entreprises-immatriculees-en-".date("Y")."&q=&sort=date_immatriculation&facet=siren&facet=forme_juridique&facet=code_ape&facet=ville&facet=region&facet=greffe&facet=date_immatriculation&facet=statut&refine.greffe=NANCY";

Comment ça marche ?

Lorsque nous codons l'URL que je génère par concaténation avec l'ensemble des informations que je souhaite récupérer, autrement dit les facets, je vais me retrouver avec un flux au format Json, que je vais donc, au moyen de la commande de décodage d'une chaîne de caractère dans ce format, en extraire les différentes informations renvoyées par le site web. Ces informations sont donc décodées et récupérées dans un tableau, il ne me reste plus qu'à parcourir le tableau et de générer une grande chaîne de caractères dans laquelle je vais, en plus des informations que je souhaite avoir, générer tout ce qui va bien pour que cette chaîne de caractères finales soit en fait un simple flux au format RSS 2.0.
Voilà, je ne m'étendrai pas plus sur le code que j'ai écrit, en effet le reste est relativement clair et simple d'utilisation et de compréhension.
 

Une extension au flux RSS

Comme nous avons désormais un flux au format RSS valide, afin d'avoir ces informations récupérées quotidiennement dans ma boîte mail, j'ai simplement "collé" mon fichier PHP sur un serveur web, de manière à ce qu'il soit en ligne et que j'ai une simple URL. A l'aide du service blogtrottr.com, je lui demande de m'envoyer une fois par jour le contenu de mon flux RSS dans ma boîte mail.
C'est ainsi que j'arrive à avoir un suivi régulier des nouvelles entreprises de ma région, ce paramètre régional n'étant pas très flexible dans la limite où, vous pourrez le constater dans la documentation du flux, les territoires ne sont pas aussi flexibles que nous le voudrions. En effet, j'ai dû me calquer sur un découpage administratif des entreprises, qui est donc passé en paramètre de URL. Nous n'avons pas la main sur cette information, c'est la raison pour laquelle nous devons quand même vérifier manuellement, dans notre cas d'utilisation, si l'ensemble des informations correspondent aux jeux de données que nous souhaitons récupérer.

Le code

<?php
	header( "Content-type: text/xml");
	$url = "https://opendata.datainfogreffe.fr/api/records/1.0/search/?dataset=entreprises-immatriculees-en-".date("Y")."&q=&sort=date_immatriculation&facet=siren&facet=forme_juridique&facet=code_ape&facet=ville&facet=region&facet=greffe&facet=date_immatriculation&facet=statut&refine.greffe=NANCY";
	$a = json_decode(file_get_contents($url),true);
	
	
	echo "<?xml version='1.0' encoding='UTF-8'?>
			<rss version='2.0'>
			<channel>
			<title>Liste des entreprises créées à Nancy</title>
			<link>http://www.sebastien-lhuillier.com</link>
			<description>Liste des entreprises créées à Nancy d'aprés Infogreffes</description>
			<language>FR-fr</language>
			\r\n";

	foreach($a["records"] as $UneEntreprise)
	{
		echo "\t<item>\r\n";
		$chaine .= $UneEntreprise["fields"]["etat"];
		$chaine  .= 	"Dénomination : ".$UneEntreprise["fields"]["denomination"]."<br>\r\n";
		$chaine  .= 	"CodeAPE : ".$UneEntreprise["fields"]["code_ape"]."<br>\r\n";
		$chaine  .= 	"Statut : ".$UneEntreprise["fields"]["statut"]."<br>\r\n";
		$chaine  .= 	"Forme juridique : ".$UneEntreprise["fields"]["forme_juridique"]."<br>\r\n";
		$chaine  .= 	"Secteur d'activité : ".$UneEntreprise["fields"]["secteur_d_activite"]."<br>\r\n";
		$chaine  .= 	"Région : ".$UneEntreprise["fields"]["region"]."<br>\r\n";
		$chaine  .= 	"Département : ".$UneEntreprise["fields"]["num_dept"]."(".$UneEntreprise["fields"]["departement"].")<br>\r\n";
		
		$chaine  .= 	"SIREN : ".$UneEntreprise["fields"]["siren"]."<br>\r\n";
		$chaine  .= 	"Date d'immatriculation : ".$UneEntreprise["fields"]["date_immatriculation"]."<br>\r\n";
		$chaine  .= 	"Adresse : ".$UneEntreprise["fields"]["adresse"]."<br>\r\n";
		$chaine  .= 	"Ville : ".$UneEntreprise["fields"]["ville"]." (".$UneEntreprise["fields"]["code_postal"].")<br>\r\n";
		$chaine  .= 	"Publié le  : ".$UneEntreprise["fields"]["date_de_publication"]."<br>\r\n";
		$chaine  .= 	"Immatriculé le  : ".$UneEntreprise["fields"]["date_immatriculation_origine"]."<br>\r\n";
			
		
		echo 	"<title>".$UneEntreprise["fields"]["denomination"]."</title>\r\n";
		echo 	"<link>".$UneEntreprise["fields"]["fiche_identite"]."</link>\r\n";
		echo 	"<description><![CDATA[".$chaine."]]></description>\r\n";
		echo 	"</item>\r\n"; 
		
	}
		

echo 	"</channel></rss>\r\n"; 


?>