first commit
This commit is contained in:
65
test2.php
Normal file
65
test2.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?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);
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user