[PHP] Récupération de données dans un fichier

Récupération de données dans un fichier [PHP] - PHP - Programmation

Marsh Posté le 19-12-2003 à 11:11:45    

Bonjour,
 
j'ai un fichier txt sur mon serveur (message.txt), dont je voudrais récupérer le contenu pour affichage et modification ds un textarea.
Seulement, une fois affiché ds un textarea, j'obtiens des caractères bizarres pour tous les caractères accentués et je n'ai plus d'infos sur la mise en forme (balises <br> <b> )...
 
Par ailleurs, comment réécrire ces infos à la place des autres dans mon fichier tout en gardant les infos de mise en forme ?
 
Merci pour votre aide

Reply

Marsh Posté le 19-12-2003 à 11:11:45   

Reply

Marsh Posté le 19-12-2003 à 12:45:01    

Faut pas oublier que le contenu d'un textarea est écrit dans un compartiment html, donc tu retrouves tous les problèmes d'échappement des balises, entités, etc., à quelques exceptions près. Soit tu utilises les fonctions habituelles fournies par PHP pour convertir ces éléments (dans les deux sens), soit tu ponds des fonctions spécialisées qui traitent exactement ton problème en fonction de ce que tu veux garder/ignorer dans ta correspondance fichier<>formulaire.
 
Voici quelques éléments critiques à examiner:
 
- les "htmlspecials" : lt(< ), gt(> ) et amp(& ) - La fonction htmlspecialchars permet usuellement de convertir ces trois cars en leur entité HTML
 
- les "magics" : apos('), quotes(" ) et antislash(\) - selon magic_quotes_gpc, les magics seront échappés (ou pas!) avant récup sous PHP des données envoyées par le formulaire. Il faut parfois neutraliser ce comportement.
 
- l'espace insécable: difficile à produire dans un textarea mais l'ascii 160 fonctionne (=\240). On le récupère sous cette forme, on l'injecte traditionnellement avec &nbsp;
 
- les tabulations: je crois qu'elles sont conservées telles quelles dans textarea (ce ne serait pas le cas dans text)
 
- les sauts: qu'on envoie NL (10) ou RC (13+10) dans un textarea, il l'interprète comme RC. Ca peut nécessiter des ajustements.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed