diff --git a/core.php b/core.php new file mode 100644 index 0000000..dd4cef7 --- /dev/null +++ b/core.php @@ -0,0 +1,108 @@ +loadHTML($html); + libxml_clear_errors(); + + // Recherche de la div avec l'id "calendrier" + $calendrierDiv = $dom->getElementById('calendrier'); + + // Récupération des liens dans la liste + $calendrierLinks = $calendrierDiv->getElementsByTagName('a'); + + // Tableau pour stocker les nodes et les URLs + $calendrier = array(); + + // 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 + ); + } + return ($calendrier); +} + +function geocode($url) +{ + + // URL de la page à analyser + //$url = $_GET['calendrier']; + // $url = 'https://www.sabradou.com/index.php'; + + // Récupération du contenu de la page + $html = file_get_contents($url); + + // Création d'un objet DOMDocument + $dom = new DOMDocument(); + 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 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; + } + } + } + return ($cities); +} \ No newline at end of file diff --git a/index.php b/index.php index a0a83a0..d92aede 100644 --- a/index.php +++ b/index.php @@ -1,58 +1,25 @@ -loadHTML($html); -libxml_clear_errors(); - -// Recherche de la div avec l'id "calendrier" -$calendrierDiv = $dom->getElementById('calendrier'); - -// Récupération des liens dans la liste -$calendrierLinks = $calendrierDiv->getElementsByTagName('a'); - -// Tableau pour stocker les nodes et les URLs -$calendrier = array(); - -// 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'] . "
    "; -// } - -?> + + Formulaire de sélection + + -
    - - -
    - -
    +
    +
    + + + +
    +
    + \ No newline at end of file diff --git a/map.php b/map.php index cc82533..82a35a3 100644 --- a/map.php +++ b/map.php @@ -1,72 +1,4 @@ -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; - } - } -} -?> - + @@ -77,7 +9,22 @@ foreach ($liElements as $liElement) { - +
    +
    + + + +
    +
    + + + +
    diff --git a/style.css b/style.css index 6f8fc74..6961632 100644 --- a/style.css +++ b/style.css @@ -3,4 +3,16 @@ width: 1200px; margin-left: auto; margin-right: auto; +} + +.container { + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +.form { + max-width: 600px; /* Vous pouvez ajuster la largeur maximale selon vos besoins */ + width: 200%; } \ No newline at end of file