Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Pour comprendre à quoi sert ce script, RDV sur le forum OpenClassooms / PHP
- https://openclassrooms.com/forum/sujet/recuperation-de-donnees-d-un-site-export-en-csv
- Le résultat intégral est disponible sur pastebin : http://pastebin.com/7BEU3MHa et http://pastebin.com/TSYwYKqR
- <?php
- // RECUPERATION DES DONNEES DE DEPART QUI SERONT PAR LA SUITE TRAITEES
- // ===================================================================
- // On démarre la session qui permettra d'éviter de charger plusieurs fois les données de départ
- session_start();
- // Si les données n'ont pas encore été chargées depuis le site, alors on va les chercher
- if ( !isset($_SESSION['datas']) )
- {
- // On récupère le code source de la page relative aux bureaux de vote de la primaire de droite
- $datas = file_get_contents('http://www.primaire2016.org/ou-voter/listebureaux');
- $_SESSION['datas'] = $datas;
- }
- // Si les données ont déjà été chargées, alors on les récupère sans les charger de nouveau depuis le site
- else
- {
- $datas = $_SESSION['datas'];
- }
- // PREMIER TRAITEMENT DES DONNEES RECUPEREES, OBTENTION D'UN TABLEAU POUR CHAQUE BUREAU
- // ====================================================================================
- // Découpage de tous les bureaux de vote dans variables $transfo[1] à $transfo[10228]
- $transfo = explode ('<p class="form-control-static">Bureau de vote ', $datas);
- // SECOND TRAITEMENT DES DONNEES RECUPEREES, OBTENTION D'UN TABLEAU POUR CHAQUE BUREAU
- // ===================================================================================
- // Pour chaque bureau, il faut récupérer les informations qui nous intéressent et les ranger
- foreach ($transfo as $bureau)
- {
- // Pour le numéro de bureau...
- $traitement1 = explode ('</p>', $bureau);
- $numerobureau = $traitement1[0];
- // Pour l'adresse du bureau...
- $traitement2 = explode ('<div class="col-md-offset-5 col-md-4 col-sm-offset-5 col-sm-5"><p class="form-control-static">', $bureau);
- $traitement3 = $traitement2[1];
- $traitement4 = explode ('</p>', $traitement3);
- $adressebureau = $traitement4[0];
- // Pour le code postal et la ville du bureau...
- $traitement5 = $traitement2[2];
- $traitement6 = explode ('</p>', $traitement5);
- $villebureau = $traitement6[0];
- // On enregistre le bureau en cours dans la variable globale de résultat
- $i++;
- $listepropre[$i]['numero'] = $numerobureau;
- $listepropre[$i]['adresse'] = $adressebureau;
- $listepropre[$i]['ville'] = $villebureau;
- }
- // On supprime la première ligne qui n'a aucun sens car ne contient pas d'information relative à un bureau
- unset($listepropre[1]);
- // TROISIEME TRAITEMENT DES DONNEES RECUPEREES, GENERATION D'UN FICHIER CSV
- // ========================================================================
- // On prépare les titres des colonnes CSV
- $fichier = 'numero bureau;adresse bureau;code postal - ville'.'<br>';
- foreach ($listepropre as $bureau)
- {
- // Pour chaque bureau on créé la ligne CSV de ce bureau
- $fichier .= $bureau['numero'].';'.$bureau['adresse'].';'.$bureau['ville'].'<br>';
- }
- // On affiche le fichier CSV terminé
- echo '<pre>';
- echo($fichier);
- echo '</pre>';
- ?>
Advertisement
Add Comment
Please, Sign In to add comment