Textarea et fichier texte

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Textarea et fichier texte

par DeLorbe » 25 janv. 2008, 20:41

Bonjour,

je le fais tout de suite, et j'y penserai les prochaines fois :)

par zeus » 25 janv. 2008, 20:34

Modération :
DeLorbe, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par DeLorbe » 25 janv. 2008, 20:32

Ok, plutôt que d'éditer je réponds pour terminer ce sujet :

J'ai trouvé, il me fallait faire une boucle pour lire tout le fichier :

Code : Tout sélectionner

$Edito = ""; $fp = fopen("../edito.txt", "r"); if ($fp) { while (!feof($fp)) { $Edito = $Edito . fgets($fp, 4096); } fclose($fp); } $Edito = nl2br($Edito);
Merci beaucoup à vous deux, j'espère pouvoir aider à mon tour désormais.

par h0_noMan » 25 janv. 2008, 20:28

Oui c'est exactement cela.

Sois tu fait une boucle, comme dans l'exemple
http://fr2.php.net/fgets

Ou sois tu utilises fread (Penses a mettre b dans les paramètres d'ouverture du fichier)

par DeLorbe » 25 janv. 2008, 20:22

Merci pour vos réponses :wink:

Si, j'avais vu nl2br() et regex().
J'ai testé les deux, et puis je me suis emmêlé les pinceaux et j'ai viré tout ça de mon code.

Donc je le remets de cette façon :

Code : Tout sélectionner

$fp = fopen("../edito.txt", "r"); $Edito = fgets ($fp, 9999); $Edito = nl2br($Edito); fclose ($fp);
Bien entendu, lors de la lecture du fichier.
Il n'y a rien à faire lors de l'écriture? Pas de formatage, rien?

h0_noMan, veux-tu dire par là que mon code ci-dessus ne lirait QUE la première ligne du fichier?
Si oui, il faut que je fasse une boucle pour lire tout le contenu.
Aurais-tu un exemple, un lien, ou un conseil stp?

Merci encore à vous deux :)

par Berzemus » 25 janv. 2008, 19:50

tu veux dire que tu as cherché sans jamais tomber sur nl2br() ?

Hé ben.. l'arbre devait cacher la forêt :wink:

Pour \n et \r\n, ça dépend de l'os et du navigateur utilisé par le client (toi quoi), c'est le format du retour à la ligne.

Soit tu utilises nl2br(), ou un simple regex pour remplacer \n ou \n\r par <br />. (ou \n<br />n pour garder le retour a la ligne).

voilà :D

par h0_noMan » 25 janv. 2008, 19:45

fgets — Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier

Textarea et fichier texte

par DeLorbe » 25 janv. 2008, 19:29

Bonjour,

Je me permets de créer un nouveau post, car toutes les réponses que j'ai trouvées, ici ou ailleurs, ne résolvent pas mon problème.

Je veux gérer l'édito de mon site avec un formulaire et le conserver dans un fichier texte : "edito.txt".

J'ai créé un formulaire ("frmEdito"), qui contient un textarea. Celui-ci s'appelle "txtEdito" Le saut de ligne est réglé à "default".
--> Quel est le code envoyé pour un saut de ligne, dans ce cas? "\n", "\r\n" ou autre?
--> Qu'est-ce que "\r\n"? J'ai lu ça dans un forum, mais je n'avais jamais entendu parler de ça...

Au traitement de ce formulaire, j'ouvre un fichier texte en écriture, et je lui envoie le contenu du textarea, que j'ai préalablement récupéré dans une variable :

Code : Tout sélectionner

$fp = fopen("../edito.txt", "w"); $Edito = $_POST["txtEdito"]; fputs ($fp, $Edito); fclose ($fp);
Je sais qu'il faut utiliser des fonctions lors de l'écriture et/ou de la lecture du fichier, pour remplacer les sauts de lignes par des balises HTML, mais je m'y perds. Je ne sais pas lesquelles utiliser.

Mon problème :

Dans le textarea j'écris :
Blablablablablabla
Blablablablablablablablablabla,
Blablablablablablablablablabla,
Blablablablablablablablablabla.

Blablablablablablablablablabla,
Blablablablablablablablablabla,
Blablablablablablablablablabla.
(j'ajoute un dernier saut de ligne)

Je soumets le formulaire, et j'ouvre mon fichier texte. Son contenu est identique à ce que j'ai écrit dans le textarea.

A présent j'ouvre la page qui est censée afficher cet édito, et je lis :
Blablablablablabla
(et mon saut de ligne)

voici comment je lis mon fichier texte :

Code : Tout sélectionner

$fp = fopen("../edito.txt", "r"); $Edito = fgets ($fp, 9999); fclose ($fp);
Que faire svp?