[ics] Traitement d'un agenda

Résolu/Fermé
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - Modifié par vlmath le 2/09/2011 à 18:05
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 4 sept. 2011 à 13:18
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
A voir également:

1 réponse

vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
4 sept. 2011 à 13:18
ça avait l'ait d'être un problème d'encodage ... tout en UTF8 et ça va bien :D
0