Tout ok
This commit is contained in:
parent
ef715b9cb7
commit
827f8bcfca
108
core.php
Normal file
108
core.php
Normal file
@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
function getCalendrier()
|
||||
{
|
||||
|
||||
// URL de la page à analyser
|
||||
$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 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 <li> dans le div
|
||||
$liElements = $sommaireCentreDiv->getElementsByTagName('li');
|
||||
|
||||
// Tableau pour stocker les villes et leurs coordonnées
|
||||
$cities = array();
|
||||
|
||||
// Parcourir les balises <li> et extraire le texte cliquable des liens
|
||||
foreach ($liElements as $liElement) {
|
||||
// Vérifier s'il y a un lien dans le <li>
|
||||
$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 . "<br />";
|
||||
//echo "Lien : " . $href . "<br />";
|
||||
|
||||
// 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 . "<br />";
|
||||
//echo "Longitude : " . $longitude . "<br />";
|
||||
|
||||
// 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);
|
||||
}
|
67
index.php
67
index.php
@ -1,58 +1,25 @@
|
||||
<?php
|
||||
|
||||
// URL de la page à analyser
|
||||
$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 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'] . "<br />";
|
||||
// echo "URL : " . $item['url'] . "<br />";
|
||||
// }
|
||||
|
||||
?>
|
||||
<?php include("core.php"); ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Formulaire de sélection</title>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form action="map.php" method="POST">
|
||||
<label for="calendrier-list">Sélectionnez un élément :</label>
|
||||
<select name="calendrier" id="calendrier-list">
|
||||
<?php foreach ($calendrier as $item) : ?>
|
||||
<option value="<?php echo $item['url']; ?>"><?php echo $item['node']; ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<br>
|
||||
<input type="submit" value="Afficher sur la carte">
|
||||
</form>
|
||||
<div class="container">
|
||||
<form class="form" action="map.php" method="GET">
|
||||
<label for="calendrier-list">Sélectionnez une date :</label>
|
||||
<select name="calendrier" id="calendrier-list">
|
||||
<?php $calendrier = getCalendrier(); ?>
|
||||
<?php foreach ($calendrier as $item): ?>
|
||||
<option value="<?php echo $item['url']; ?>"><?php echo $item['node']; ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<input type="submit" value="Afficher sur la carte">
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
87
map.php
87
map.php
@ -1,72 +1,4 @@
|
||||
<?php
|
||||
|
||||
// URL de la page à analyser
|
||||
$url = $_POST['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 <li> dans le div
|
||||
$liElements = $sommaireCentreDiv->getElementsByTagName('li');
|
||||
|
||||
// Tableau pour stocker les villes et leurs coordonnées
|
||||
$cities = array();
|
||||
|
||||
// Parcourir les balises <li> et extraire le texte cliquable des liens
|
||||
foreach ($liElements as $liElement) {
|
||||
// Vérifier s'il y a un lien dans le <li>
|
||||
$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 . "<br />";
|
||||
//echo "Lien : " . $href . "<br />";
|
||||
|
||||
// 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 . "<br />";
|
||||
//echo "Longitude : " . $longitude . "<br />";
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php include("core.php"); ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@ -77,7 +9,22 @@ foreach ($liElements as $liElement) {
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<form class="form" action="map.php" method="GET">
|
||||
<label for="calendrier-list">Sélectionnez une date :</label>
|
||||
<select name="calendrier" id="calendrier-list">
|
||||
<?php $calendrier = getCalendrier(); ?>
|
||||
<?php foreach ($calendrier as $item): ?>
|
||||
<option value="<?php echo $item['url']; ?>"><?php echo $item['node']; ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<input type="submit" value="Afficher sur la carte">
|
||||
</form>
|
||||
</div>
|
||||
<?php if (isset($_GET['calendrier'])): ?>
|
||||
<?php $jour = $_GET['calendrier']; ?>
|
||||
<?php $cities = geocode($jour);?>
|
||||
<?php endif; ?>
|
||||
<div id="map"></div>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js"></script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user