Preg_match_all array
lanzari
Messages postés
112
Statut
Membre
-
lanzari Messages postés 112 Statut Membre -
lanzari Messages postés 112 Statut Membre -
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 ?
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>";
?>
lanzari
Messages postés
112
Statut
Membre
13
C'est juste parfait ! Milles merci
lanzari
Messages postés
112
Statut
Membre
13
Simple question, pourquoi seulement 4 affichages sont présents sur les 10 que l'on trouves dans l'array ?