[ics] Traitement d'un agenda [Résolu/Fermé]

Signaler
Messages postés
801
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
-
vlmath
Messages postés
801
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
-
Bonjour,

Je viens de faire un petit script en PHP pour convertir un fil d'actualité sous un format particulier en agenda en ligne ics que je veux importer depuis Thunderbird.

Une fois le script lancé, le fichier ics est correctement généré. Le problème est le suivant :

Quand le fichier ics est directement généré lors de la requête par Thunderbird, ça ne fonctionne pas (agenda indisponible), alors que si je fais un copier coller de la sortie, et que je met un echo $sortie à la place de la génération de $sortie, ça fonctionne bien.

Une idée ?

<?php 

// Les lignes ci-dessous sont copier depuis la sortie du navigateur (source de la page, et directement collées). 

/*
echo "BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:test
X-WR-TIMEZONE:Europe/Zurich
X-WR-CALDESC:
BEGIN:VEVENT
DTSTART:20110922T133000
DTEND:20110922T143000
DTSTAMP:20110922T133000
CREATED:20110922T133000
DESCRIPTION: 
LAST-MODIFIED:20110922T133000
LOCATION:Auditoire C
STATUS:CONFIRMED
SUMMARY:Présentation 2011
TRANSP:TRANSPARENT
CATEGORIES:Conférence
END:VEVENT
END:VCALENDAR"; 
 
exit(0); 

*/

// Le code ci-dessous génère le calendrier ci-dessus 

echo "BEGIN:VCALENDAR 
PRODID:-//Google Inc//Google Calendar 70.9054//EN 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:PUBLISH 
X-WR-CALNAME:test 
X-WR-TIMEZONE:Europe/Zurich 
X-WR-CALDESC: 
"; 

$data = preg_replace("@[\n\r\t]@Ui", "", file_get_contents( './data.txt' ) ); 

preg_match_all( "@<item>.*". 
"<title>([0-9]{2})-([0-9]{2})-([0-9]{4}) ([0-9]{2}):([0-9]{2}) (.*)</title>.*". 
"<link>(.*)</link>.*". 
"<description>\((.*)[\s,]*\)(.*)</description>.*". 
"</item>@Ui", $data, $output, PREG_SET_ORDER); 

foreach( $output as $event ) 
{ 
 $endtime = $event[4]+1; 
 echo "BEGIN:VEVENT 
DTSTART:$event[3]$event[2]$event[1]T$event[4]$event[5]00 
DTEND:$event[3]$event[2]$event[1]T$endtime$event[5]00 
DTSTAMP:$event[3]$event[2]$event[1]T$event[4]$event[5]00 
CREATED:$event[3]$event[2]$event[1]T$event[4]$event[5]00 
DESCRIPTION:$event[9] 
LAST-MODIFIED:$event[3]$event[2]$event[1]T$event[4]$event[5]00 
LOCATION:$event[8] 
STATUS:CONFIRMED 
SUMMARY:$event[6] 
TRANSP:TRANSPARENT 
CATEGORIES:Conférence 
END:VEVENT 
"; 
} 

echo "END:VCALENDAR"; 
exit(0); 

?>


<config>Windows 7
Opera 11
Messages postés
801
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
150
ça avait l'ait d'être un problème d'encodage ... tout en UTF8 et ça va bien :D