-->
< <(a=c)> // (f=iso-8859-1)
(B8=Custom3)(B9=Custom4)(BA=Notes)(BB=LastModifiedDate)(BC=RecordKey)
(BD=AddrCharSet)(BE=LastRecordKey)(BF=ns:addrbk:db:table:kind:pab)
(C0=ListName)(C1=ListNickName)(C2=ListDescription)
(C3=ListTotalAddresses)(C4=LowercaseListName)
(C5=ns:addrbk:db:table:kind:deleted)(C6=PalmRecId)
(80=ns:addrbk:db:row:scope:card:all)
(81=ns:addrbk:db:row:scope:list:all)
(82=ns:addrbk:db:row:scope:data:all)(83=FirstName)(84=LastName)
(85=PhoneticFirstName)(86=PhoneticLastName)(87=DisplayName)
(88=NickName)(89=PrimaryEmail)(8A=LowercasePrimaryEmail)
(8B=SecondEmail)(8C=DefaultEmail)(8D=CardType)(8E=PreferMailFormat)
(8F=PopularityIndex)(90=WorkPhone)(91=HomePhone)(92=FaxNumber)
(93=PagerNumber)(94=CellularNumber)(95=WorkPhoneType)(96=HomePhoneType)
(97=FaxNumberType)(98=PagerNumberType)(99=CellularNumberType)
(9A=HomeAddress)(9B=HomeAddress2)(9C=HomeCity)(9D=HomeState)
(9E=HomeZipCode)(9F=HomeCountry)(A0=WorkAddress)(A1=WorkAddress2)
(A2=WorkCity)(A3=WorkState)(A4=WorkZipCode)(A5=WorkCountry)
(A6=JobTitle)(A7=Department)(A8=Company)(A9=_AimScreenName)
(AA=AnniversaryYear)(AB=AnniversaryMonth)(AC=AnniversaryDay)
(AD=SpouseName)(AE=FamilyName)(AF=DefaultAddress)(B0=Category)
(B1=WebPage1)(B2=WebPage2)(B3=BirthYear)(B4=BirthMonth)(B5=BirthDay)
(B6=Custom1)(B7=Custom2)>\n"); // Le début des données est matérialisé par un "<" $data="<"; // Les carnets générés par Thunderbird semble commencer la numérotation à 80 // Pourquoi ne pas faire pareil ? :) $cpt=80; $adresses=mysql_query("select * from adresses"); while($adresse=mysql_fetch_array($adresses)) { // La colonne "^BE" demande un numéro d'enregistrement valide, prenons l'identifiant du premier enregistrement, par exemple if($cpt==80) $affect="{1:^80 {(k^BF:c)(s=9)}
[1:^82(^BE=".$adresse["id"].")]"; // Les données elles-mêmes $data.="(".$cpt."=".$adresse["id"].")"; // L'identifiant $data.="(".($cpt+1)."=".$adresse["prenom"].")"; // Le prénom $data.="(".($cpt+2)."=".$adresse["nom"].")"; // Le nom $data.="(".($cpt+3)."=".$adresse["nom"]." ".$adresse["prenom"].")"; // Le nom complet $data.="(".($cpt+4)."=".strtolower($adresse["mail"]).")"; // L'adresse email en minuscule $data.="(".($cpt+5)."=".$adresse["tel"].")"; // Le téléphone // Affectation des cellules aux colonnes $affect.="[".$adresse["id"]; // L'identifiant $affect.="(^83^".($cpt+1).")"; // ^83 : FirstName $affect.="(^84^".($cpt+2).")"; // ^84 : LastName $affect.="(^87^".($cpt+3).")"; // ^87 : DisplayName $affect.="(^89^".($cpt+4).")"; // ^89 : PrimaryEmail $affect.="(^8A^".($cpt+4).")"; // ^8A : LowercasePrimaryEmail (!) $affect.="(^90^".($cpt+5).")"; // ^90 : WorkPhone $affect.="(^BC=".$adresse["id"].")"; // ^BC : RecordKey $affect.="]"; // Comme je n'utilise que peu d'informations, je fais un incrément de 10 pour numéroter les cellules // L'important est que deux cellules n'aient pas le même numéro... $cpt+=10; } // Remplacement des caractères spéciaux dans la chaine des données $speciaux1 = array('é','è','ç','à','â','ê','û','î','ô','ù','ë','ü'); $speciaux2 = array('$C3$A9','$C3$A8','$C3$A7','$C3$A0','$C3$A2','$C3$AA','$C3$BB','$C3$AE','$C3$B4','$C3$B9','$C3$AB','$C3$BC'); $data = str_replace($speciaux1, $speciaux2, $data); // Fin des datas. $data.=">"; // Fin des affectations $affect.="}"; // On écrit tout ça dans le fichier, dans l'ordre fputs($file,$data.$affect); // Et on ferme le .MAB qui est maintenant utilisable par Thunderbird, si tout s'est bien passé... fclose($file); echo("Traitement terminé"); ?>