Bonjour,
Je viens avec un souci pour lequel je n'ai trouvé de solution ni sur le Github du propriétaire du parser (envoi de mail avec explication il y a deux mois).
J'utilise donc un parser un fichier ICS et l'enregistrer dans une base de données : https://github.com/MartinThoma/ics-parser à l'aide d'une commande CRON.
Jusque là, le parser actuel me donnait un bon résultat sauf... que lorsque le fichier ICS contient des descriptions, et qu'il y a un retour à la ligne dans ces descriptions (retours à la ligne obligés dans le fichier même et non un retour à la ligne voulu dans le texte, cf capture d'écran d'un fichier exemple), l'espace entre les deux mots avant et après à la ligne est carrément supprimé, ici, l'espace entre "it was" et "decided" est supprimé.
J'utilise un subterfuge en mettant un espace en plus entre les deux mots dans mon texte mais bien sur, cela se reproduit plus loin.... donc besoin d'éditer le fichier pas mal de fois. Et quand la description est longue, disons que c'est assez.... long !
Sur le github parser actuel, j'ai trouvé une "issue" où le bug est déjà révélé et une solution donnée :https://github.com/MartinThoma/ics-parser/issues/4
Le fait de commenter la ligne 65 du fichier class.iCalReader.php ne résoud rien, au contraire, cela en rajoute... et changer "trim" par ltrim ou rtrim non plus.
On parle également d'erreurs dans ce même fichier.
Depuis deux jours, j'essaye un autre parser, https://www.a2zwebhelp.com/import-data-from-ics un peu plus récent, mais j'obtiens les mêmes résultats....
Mon texte ne comporte que des balises <p> et </p> ajoutées par l'application du gestionnaire de sport que nous utilisons et le fichier .ics fourni ne comporte aucun autre caractère HTML d'espacement. Donc pas un souci de texte encodé, meme avec du simple Lorem Ipsum copié en texte brut, cela le fait aussi
Pour le mettre en base de données, j'utilise, comme donné dans les parsers, la commandepour passer le code HTML dans le champs de la colonne DESCRIPTION.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $connect->real_escape_string($data['DESCRIPTION'])
J'utilise aussi le codage UTF8_bin dans ma base et dans le fichier PHP.
Un exemple concret :
Ici, les mots "Le Comité" ainsi que l'espace après la virgule en fin de texte "rencontrer,je" sont séparés d'un espace puis d'un retour à la ligne, et collés, espace supprimé donc, dans la BDD, ainsi que sur la page bien sur.
tous les fichiers ICS ont ce retour à la ligne après x caractères.
Connaissez-vous d'autres parsers ICS => Mysql/PHP ?
Qui pourrait me solutionner cet énervant souci d'espaces bouffés par les parsers à chaque retour à la ligne du fichier ?
Merci de votre aide !
Partager