Files
Domoticz/test2.php
2025-03-06 11:09:58 +01:00

66 lines
1.8 KiB
PHP

<?php
// URL de la page à extraire
$url = "https://www.lachainemeteo.com/meteo-france/ville-215361/previsions-meteo-la-gacilly-demain";
// Fonction pour récupérer le contenu HTML d'une URL
function getHTMLContent($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$htmlContent = curl_exec($ch);
curl_close($ch);
return $htmlContent;
}
// Fonction pour extraire les données de la classe HTML "timetable-container"
function extractDataFromHTML($htmlContent) {
$doc = new DOMDocument();
libxml_use_internal_errors(true); // Désactiver les erreurs libxml
// Charger le contenu HTML
$doc->loadHTML($htmlContent);
$xpath = new DOMXPath($doc);
// Rechercher les éléments avec la classe "timetable-container"
$elements = $xpath->query('//div[contains(@class, "timetable-container")]');
// Créer un tableau pour stocker les données extraites
$data = array();
// Parcourir les éléments et extraire le contenu
foreach ($elements as $element) {
$data[] = $element->nodeValue;
}
return $data;
}
// Récupérer le contenu HTML de l'URL
$htmlContent = getHTMLContent($url);
// Extraire les données de la classe HTML "timetable-container"
$data = extractDataFromHTML($htmlContent);
// Convertir les données en format JSON
$jsonData = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
// Afficher le JSON résultant
header('Content-Type: application/json');
//echo $jsonData;
#$data = explode("\n", $data);
$data = json_decode($jsonData, true);
// Suppression des caractères "\n" dans les valeurs du tableau
/*$data = array_map(function ($value) {
if (is_string($value)) {
return str_replace("\n", "", $value);
}
return $value;
}, $data);*/
// Affichage du tableau résultant
print_r($data);
?>