Bonjour,

Ce que j'essaie de faire est sûrement très simple, excusez mon incompétence.

Je voudrais afficher un texte dynamique à partir d'un fichier .txt ; comment faire SVP pour encoder correctement les accents, et pour que l'affichage respecte les renvois à la ligne?

Je précise que le fichier texte sera par la suite modifié par une personne ne maîtrisant pas php ni html.

Merci de votre réponse.
Bonsoir,
Tout dépend de ce que tu veux faire...

Veille déjà à bien contrôler l'encodage utilisé dans le formulaire permettant d'éditer le fichier, et utilise toujours le même encodage depuis le début jusqu'à la fin, depuis l'affichage jusqu'au traitement. Tu as notamment le choix entre iso-8859-1 ou utf8, mais fais un seul et unique choix pour tout.

Encore une chose : si tu manipules tes données en iso-8859-1 sous windows, fais attention aux problèmes du windows:1252.

Pour rendre les sauts de ligne à la'ffichage, il existe une fonction php nommée nl2br qui risque d'être fort utile. Plus d'infos chez php.net dans la doc.


Je ne sais pas si j'ai répondu à la question ?
Merci beaucoup pour le "nl2br", ça c'est parfait et ça fonctionne au petit poil.

Concernant les accents, c'est plus compliqué pour moi, mais je précise :

J'écris un fichier .txt codage ANSI ; le fichier est ouvert et affiché sur une page php. Juste un paragraphe, pas de formulaire, pas de base de données (j'utilise la BDD pour d'aures fonctions).

Le but est simplement que l'administratrice du site puisse modifier le texte ultérieurement via une interface d'administration.

L'affichage est parfait, mon problème est juste que le code contient des "é" au lieu de "é".

Je sais que ça n'est pas recommandé, mais je ne sais pas pour quelle raison (je vous avais dit que j'étais ignorant...)

Merci pour votre réponse.
C'est une erreur de dire qu'il faut recommander é à la place de é.
Ce n'est valable que si le fichier doit être encodé en us-ascii, ce qui est somme tout assez rare aujourd'hui.

En iso-8859-1 comme en utf8, il est parfaitement autorisé et valide d'utiliser le caractère littéral é.

Puisque tu sembles utiliser le notepad de windows, il faut juste faire attention à quelques caractères que monsieur Bill n'encode pas correctement : par exemple la ligature oe, le signe euro, et quelques autres un peut moins importants.
Sinon, l'encodage par défaut du notepad est ANSI, ce qui revient à dire, à peu de chose près, iso-8859-1 (en fait c'est du windows:1252 mais ces deux encodages ne diffèrent que par les caractères dont le code est compris entre 128 et 160, caractères dont font justement partie ceux que je te cite. Pour une liste complète des caractères concernés, se reporter sur openweb).

Assure-toi simplement que toute la chaîne, de l'affichage de la page web aux données du formulaire, soient tous encodés en iso.