<?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);
?>

