nbbeliard

Primaire de droite 2016 - Code source PHP (liste bureaux)

Oct 19th, 2016
3,628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.20 KB | None | 0 0
  1. Pour comprendre à quoi sert ce script, RDV sur le forum OpenClassooms / PHP
  2. https://openclassrooms.com/forum/sujet/recuperation-de-donnees-d-un-site-export-en-csv
  3. Le résultat intégral est disponible sur pastebin : http://pastebin.com/7BEU3MHa et http://pastebin.com/TSYwYKqR
  4.  
  5. <?php
  6.  
  7. // RECUPERATION DES DONNEES DE DEPART QUI SERONT PAR LA SUITE TRAITEES
  8. // ===================================================================
  9.  
  10. // On démarre la session qui permettra d'éviter de charger plusieurs fois les données de départ
  11. session_start();
  12.  
  13. // Si les données n'ont pas encore été chargées depuis le site, alors on va les chercher
  14. if ( !isset($_SESSION['datas']) )
  15. {
  16.   // On récupère le code source de la page relative aux bureaux de vote de la primaire de droite
  17.   $datas = file_get_contents('http://www.primaire2016.org/ou-voter/listebureaux');
  18.   $_SESSION['datas'] = $datas;
  19. }
  20.  
  21. // Si les données ont déjà été chargées, alors on les récupère sans les charger de nouveau depuis le site
  22. else
  23. {
  24.   $datas = $_SESSION['datas'];
  25. }
  26.  
  27. // PREMIER TRAITEMENT DES DONNEES RECUPEREES, OBTENTION D'UN TABLEAU POUR CHAQUE BUREAU
  28. // ====================================================================================
  29.  
  30. // Découpage de tous les bureaux de vote dans variables $transfo[1] à $transfo[10228]
  31. $transfo = explode ('<p class="form-control-static">Bureau de vote ', $datas);
  32.  
  33. // SECOND TRAITEMENT DES DONNEES RECUPEREES, OBTENTION D'UN TABLEAU POUR CHAQUE BUREAU
  34. // ===================================================================================
  35.  
  36. // Pour chaque bureau, il faut récupérer les informations qui nous intéressent et les ranger
  37. foreach ($transfo as $bureau)
  38. {
  39.   // Pour le numéro de bureau...
  40.   $traitement1 = explode ('</p>', $bureau);
  41.   $numerobureau = $traitement1[0];
  42.    
  43.   // Pour l'adresse du bureau...
  44.   $traitement2 = explode ('<div class="col-md-offset-5 col-md-4 col-sm-offset-5 col-sm-5"><p class="form-control-static">', $bureau);
  45.   $traitement3 = $traitement2[1];
  46.   $traitement4 = explode ('</p>', $traitement3);
  47.   $adressebureau = $traitement4[0];
  48.    
  49.   // Pour le code postal et la ville du bureau...
  50.   $traitement5 = $traitement2[2];
  51.   $traitement6 = explode ('</p>', $traitement5);
  52.   $villebureau = $traitement6[0];
  53.    
  54.   // On enregistre le bureau en cours dans la variable globale de résultat
  55.   $i++;
  56.    
  57.   $listepropre[$i]['numero'] = $numerobureau;
  58.   $listepropre[$i]['adresse'] = $adressebureau;
  59.   $listepropre[$i]['ville'] = $villebureau;
  60.    
  61. }
  62.  
  63. // On supprime la première ligne qui n'a aucun sens car ne contient pas d'information relative à un bureau
  64. unset($listepropre[1]);
  65.  
  66. // TROISIEME TRAITEMENT DES DONNEES RECUPEREES, GENERATION D'UN FICHIER CSV
  67. // ========================================================================
  68.  
  69. // On prépare les titres des colonnes CSV
  70. $fichier = 'numero bureau;adresse bureau;code postal - ville'.'<br>';
  71.  
  72. foreach ($listepropre as $bureau)
  73. {
  74.   // Pour chaque bureau on créé la ligne CSV de ce bureau
  75.   $fichier .= $bureau['numero'].';'.$bureau['adresse'].';'.$bureau['ville'].'<br>';
  76. }
  77.  
  78. // On affiche le fichier CSV terminé
  79.  
  80. echo '<pre>';
  81. echo($fichier);
  82. echo '</pre>';
  83.  
  84. ?>
Advertisement
Add Comment
Please, Sign In to add comment