Preg_match_all array
lanzari
Messages postés
107
Date d'inscription
Statut
Membre
Dernière intervention
-
lanzari Messages postés 107 Date d'inscription Statut Membre Dernière intervention -
lanzari Messages postés 107 Date d'inscription Statut Membre Dernière intervention -
Bonsoir à tous, cela fait un moment que je bloque la dessus, je n'ai pas trouvé réponse à ma question alors je me tourne vers vous :)
Je voudrais pouvoir récupérer automatique des infos d'un site pour les retranscrires sur un autre, je m'explique :
Je récupère un agenda d'un site internet "http://sortir.besancon.fr/events/liste" pour les afficher sur un autre site dans un autre format.
Pour faire cela j'utilise l'expression preg_mach_all pour récupérer des informations sur le web, c'est une méthode que je connais peu.
Cela fonctionne , et me donne un array
Mon début de code est le suivant :
mais je n'arrive pas à tout faire rentrer dans un tableau de la manière suivante :
Evenement |Date debut | Date fin | Lieu
evenement1 date_event_1 fin_event_1 rue_event_1
evenement2 date_event_2 fin_event_2 rue_event_2
evenement3 date_event_3 fin_event_3 rue_event_3
En espérant avoir été clair dans mes explications :)
merci
Je voudrais pouvoir récupérer automatique des infos d'un site pour les retranscrires sur un autre, je m'explique :
Je récupère un agenda d'un site internet "http://sortir.besancon.fr/events/liste" pour les afficher sur un autre site dans un autre format.
Pour faire cela j'utilise l'expression preg_mach_all pour récupérer des informations sur le web, c'est une méthode que je connais peu.
Cela fonctionne , et me donne un array
Array
(
[0] => http://sortir.besancon.fr/event/expo-gerard-collin-thiebaut-grammaire-sentimentale/
[1] => http://sortir.besancon.fr/event/exposition-le-monde-de-demain/
[2] => http://sortir.besancon.fr/event/exposition-francois-petit/
[3] => http://sortir.besancon.fr/event/journee-internationale-des-droits-des-femmes/
[4] => http://sortir.besancon.fr/event/nous-partons-pour-ne-plus-vous-donner-de-soucis/
[5] => http://sortir.besancon.fr/event/spectacle-le-poete-aveugle/
[6] => http://sortir.besancon.fr/event/cinekino/
[7] => http://sortir.besancon.fr/event/cinema-zoom/
[8] => http://sortir.besancon.fr/event/conference-la-radicalisation-des-jeunes-le-defi-de-la-prevention/
[9] => http://sortir.besancon.fr/event/atelier-eco-citoyen-on-met-la-main-a-la-pate/
)
Mon début de code est le suivant :
<?php
$url = "http://sortir.besancon.fr/events/liste"; // adresse de la page à exploiter
$source = file_get_contents($url);
$resultat = preg_match_all('#<span class="tribe-event-date-start">\s*(.*)\s*</span> -#', $source, $eventstart);
$resultat = preg_match_all('#<span class="tribe-event-date-end">\s*(.*)\s*</span>#', $source, $eventend);
$resultat = preg_match_all('#<a class="tribe-event-url" href="(.*)" rel="nofollow noopener noreferrer" target="_blank" title="(.*)">\s*(.*)\s*</a>#', $source, $event);
$resultat = preg_match_all('#<span class="tribe-street-address">\s*(.*)\s*</span>#', $source, $rue);
$resultat = preg_match_all('#<span class="tribe-locality">\s*(.*)\s*</span>#', $source, $ville);
$r = $event[1];
echo "<pre>";print_r($r);echo "</pre>";
?>
mais je n'arrive pas à tout faire rentrer dans un tableau de la manière suivante :
Evenement |Date debut | Date fin | Lieu
evenement1 date_event_1 fin_event_1 rue_event_1
evenement2 date_event_2 fin_event_2 rue_event_2
evenement3 date_event_3 fin_event_3 rue_event_3
En espérant avoir été clair dans mes explications :)
merci
1 réponse
-
Bonjour,
Un truc dans ce genre ?<?php $url = "http://sortir.besancon.fr/events/liste"; // adresse de la page à exploiter $source = file_get_contents($url); function debug($datas,$title=""){ echo "<br><b>$title</b><pre>"; print_r($datas); echo "</pre>"; } function getDataRow($varname,$index,$item=0){ $result = ""; if(!empty($varname) && isset($varname[$item])){ $result = isset($varname[$item][$index]) ? $varname[$item][$index] : ''; } return $result; } $resultat = preg_match_all('#<span class="tribe-event-date-start">\s*(.*)\s*</span> -#', $source, $eventstart); debug($eventstart,"eventstart"); $resultat = preg_match_all('#<span class="tribe-event-date-end">\s*(.*)\s*</span>#', $source, $eventend); debug($eventend,"eventend"); $resultat = preg_match_all('#<a class="tribe-event-url" href="(.*)" rel="nofollow noopener noreferrer" target="_blank" title="(.*)">\s*(.*)\s*</a>#', $source, $event); debug($event,"event"); $resultat = preg_match_all('#<span class="tribe-street-address">\s*(.*)\s*</span>#', $source, $rue); debug($rue,"rue"); $resultat = preg_match_all('#<span class="tribe-locality">\s*(.*)\s*</span>#', $source, $ville); debug($ville,"ville"); echo " ----------TABLEAU -------------"; echo "<table style='border: 1px solid black'>"; for($i=0;$i<count($eventstart);$i++){ echo "<tr>"; echo "<td>". getDataRow($eventstart,$i,1) ."</td>"; echo "<td>". getDataRow($eventend,$i) ."</td>"; echo "<td>". getDataRow($event,$i) ."</td>"; echo "<td>". getDataRow($rue,$i) ."</td>"; echo "<td>". getDataRow($ville,$i) ."</td>"; echo "</tr>"; } echo "</table>"; ?>