From 1ffe2763d45dfd413ece3db45ffebcce37c3d3b9 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Tue, 11 Jul 2023 14:08:23 +0200 Subject: [PATCH] manque css et retour page d'accueil --- index.php | 108 ++++++++++++++++------------------------------------- map.php | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ style.css | 5 +++ 3 files changed, 146 insertions(+), 76 deletions(-) create mode 100644 map.php create mode 100644 style.css diff --git a/index.php b/index.php index 0832201..bbd166f 100644 --- a/index.php +++ b/index.php @@ -12,91 +12,47 @@ libxml_use_internal_errors(true); // Ignore les erreurs de parsing HTML $dom->loadHTML($html); libxml_clear_errors(); -// Recherche du div avec l'id "sommaire-centre" -$sommaireCentreDiv = $dom->getElementById('sommaire-centre'); +// Recherche de la div avec l'id "calendrier" +$calendrierDiv = $dom->getElementById('calendrier'); -// Recherche des balises
  • dans le div -$liElements = $sommaireCentreDiv->getElementsByTagName('li'); +// Récupération des liens dans la liste +$calendrierLinks = $calendrierDiv->getElementsByTagName('a'); -// Tableau pour stocker les villes et leurs coordonnées -$cities = array(); +// Tableau pour stocker les nodes et les URLs +$calendrier = array(); -// Parcourir les balises
  • et extraire le texte cliquable des liens -foreach ($liElements as $liElement) { - // Vérifier s'il y a un lien dans le
  • - $linkElement = $liElement->getElementsByTagName('a')->item(0); - if ($linkElement) { - $ville = $linkElement->nodeValue; - $href = $linkElement->getAttribute('href'); - //echo $ville . "
    "; - //echo "Lien : " . $href . "
    "; - - // Requête à l'API Nominatim - $options = array( - 'http' => array( - 'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", - ), - ); - $context = stream_context_create($options); - $url = 'https://nominatim.openstreetmap.org/search?city=' . urlencode($ville) . '&format=json'; - $response = file_get_contents($url, false, $context); - $data = json_decode($response, true); - - // Vérifier si la requête a réussi - if (!empty($data)) { - // Récupérer les coordonnées géographiques de la première correspondance - $latitude = $data[0]['lat']; - $longitude = $data[0]['lon']; - - //echo "Latitude : " . $latitude . "
    "; - //echo "Longitude : " . $longitude . "
    "; - - // Ajouter la ville et ses coordonnées au tableau - $cities[] = array( - 'name' => $ville, - 'lat' => $latitude, - 'lon' => $longitude - ); - } else { - echo "Erreur : Impossible de géocoder la ville."; - } - } +// Parcourir les liens et récupérer les nodes et les URLs +foreach ($calendrierLinks as $link) { + $node = $link->nodeValue; + $url = $link->getAttribute('href'); + $calendrier[] = array( + 'node' => $node, + 'url' => 'https://www.sabradou.com/' . $url + ); } -?> +// Afficher le tableau $calendrier +// foreach ($calendrier as $item) { +// echo "Node : " . $item['node'] . "
    "; +// echo "URL : " . $item['url'] . "
    "; +// } +?> - Carte OpenStreetMap - - + Formulaire de sélection -
    - - - +
    + + +
    + +
    - + \ No newline at end of file diff --git a/map.php b/map.php new file mode 100644 index 0000000..cbcb342 --- /dev/null +++ b/map.php @@ -0,0 +1,109 @@ +loadHTML($html); +libxml_clear_errors(); + +// Recherche du div avec l'id "sommaire-centre" +$sommaireCentreDiv = $dom->getElementById('sommaire-centre'); + +// Recherche des balises
  • dans le div +$liElements = $sommaireCentreDiv->getElementsByTagName('li'); + +// Tableau pour stocker les villes et leurs coordonnées +$cities = array(); + +// Parcourir les balises
  • et extraire le texte cliquable des liens +foreach ($liElements as $liElement) { + // Vérifier s'il y a un lien dans le
  • + $linkElement = $liElement->getElementsByTagName('a')->item(0); + if ($linkElement) { + $ville = $linkElement->nodeValue; + $ville = preg_replace('/^(B\s|\d{2}\s)/', '', $ville); + $href = $linkElement->getAttribute('href'); + //echo $ville . "
    "; + //echo "Lien : " . $href . "
    "; + + // Requête à l'API Nominatim + $options = array( + 'http' => array( + 'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", + ), + ); + $context = stream_context_create($options); + $url = 'https://nominatim.openstreetmap.org/search?city=' . urlencode($ville) . '&format=json'; + $response = file_get_contents($url, false, $context); + $data = json_decode($response, true); + + // Vérifier si la requête a réussi + if (!empty($data)) { + // Récupérer les coordonnées géographiques de la première correspondance + $latitude = $data[0]['lat']; + $longitude = $data[0]['lon']; + + //echo "Latitude : " . $latitude . "
    "; + //echo "Longitude : " . $longitude . "
    "; + + // Ajouter la ville et ses coordonnées au tableau + $cities[] = array( + 'name' => $ville, + 'lat' => $latitude, + 'lon' => $longitude, + 'href' => $href, + ); + } else { + echo "Erreur : Impossible de géocoder la ville : " . $ville; + } + } +} +?> + + + + + + Carte OpenStreetMap + + + + + + +
    + + + + + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..91ac7fe --- /dev/null +++ b/style.css @@ -0,0 +1,5 @@ +#map { + height: 1600px; + width: 1200px; + margin: auto 0; +} \ No newline at end of file