Page 1 sur 1

[php] retour à la ligne <br> dans code PHP

Posté : 22 janv. 2009, 20:37
par plustration
Bonjour,
Je débute en PHP... et j'ai un problème, sans doute idiot.
Je fais des essais à partir de codes déjà existants (pour voir un peu comment ça marche). J'utilise WAMP pour tester mes pages en local.

Mon but est de créer un formulaire pour écrire dans un fichier txt. J'ai testé quelques scripts, mais à chaque fois que dans une page .php je rencontre un "<br>" (retour à la ligne) le script ne fonctionne pas.

Exemple, ce bout de code :
    <?
    $FichierClient = fopen ("fichierclient.txt" , "a+");
    fputs ($FichierClient , "\n");
    fputs ($FichierClient , $EDINom);
    fputs ($FichierClient , ",");
    fputs ($FichierClient , $EDIPrenom);
    fclose ($FichierClient);

    $FichierClient = fopen ("fichierclient.txt" , "r");
    while (!feof($FichierClient))
    {
    echo fgets ($FichierClient, 4096);
    echo "<BR>";
    }
    fclose ($FichierClient);
    ?>
donne invariable à l'affichage dans le navigateur :

"; } fclose ($FichierClient); ?>

Et c'est la même chose à chaque fois qu'il y a un "<br>" dans le code, ce qui suit s'affiche littéralement sans être traité.

J'espère que je suis assez clair dans ces explications...
Quelqu'un aurait-il une idée?
ça m'exaspère un peu de buter sur un truc aussi bête [/php]

Posté : 22 janv. 2009, 21:00
par Stef
hi,

ceci répondra peut-être à ton besoin:

http://fr.php.net/manual/fr/function.nl2br.php

Posté : 22 janv. 2009, 21:09
par Plustration
hi,

ceci répondra peut-être à ton besoin:

http://fr.php.net/manual/fr/function.nl2br.php
Bonjour,
et merci pour ta réponse.
Mais je ne crois pas que ça puisse m'aider (ou c'est peut-être que je comprends pas)
En fait quel que soit le code que je tape :
dès que je rencontre un cette balise de retour à la ligne la lecture du code s'interrompt et le navigateur affiche le reste comme du texte

autre exemple :
<?
$ListeChiffre = fopen ("listechiffre.txt" , "a+");
fputs ($ListeChiffre , "\n");
fputs ($ListeChiffre , "3230");
fclose ($ListeChiffre);

$ListeChiffre = fopen ("listechiffre.txt" , "r");
while (!feof($ListeChiffre))
  {
  echo fgets($ListeChiffre, 1000);
  echo "<BR>";
  }
echo "Fin de fichier";
fclose ($ListeChiffre);
?>
affiche dans le navigateur, ce qui est à la suite de la balise <br>, soit : }
echo "Fin de fichier";fclose ($ListeChiffre);?>

Ces codes, normalement, ils devraient bien marcher, non?
je ne comprends pas du tout ce qu'il se passe

Posté : 22 janv. 2009, 21:33
par Stef
ben moi non plus...

je ne comprends pas ce qu'est censé faire ton code :?

Posté : 22 janv. 2009, 21:53
par thehawk
J'ai testé cela marche chez moi ...
Erreur bizarre.


Edit :

essaye avec : <?php

mdr , ce sont les truc de ce genre que l'on regarde en dernier.

Posté : 22 janv. 2009, 21:55
par Plustration
J'ai testé cela marche chez moi ...
Erreur bizarre.
erreur bizarre et tout à fait frustrante...
ça pourrait venir de mon navigateur ou de WAMP que j'utilise en local?
Je vais essayer sur un serveur distant pour voir

Posté : 22 janv. 2009, 21:58
par Plustration
ben moi non plus...

je ne comprends pas ce qu'est censé faire ton code :?
Le code il doit servir normalement à ouvrir un fichier texte, à écrire des données dedans, à afficher son contenu, enfin le refermer...
normalement

Posté : 22 janv. 2009, 21:59
par thehawk
J'ai éditer , mon dernier post vérifie ce que j'ai écrit


Bonne soirée Hawk

Posté : 22 janv. 2009, 22:10
par Invité
J'ai éditer , mon dernier post vérifie ce que j'ai écrit


Bonne soirée Hawk
wahou!
je suis un peu honteux... ça fait des heures que je me lamente
mais je te serais éternellement reconnaissant
je crois bien que ça marche
merci

Posté : 22 janv. 2009, 22:11
par Plustration
et je ne crois pas que je referai cette erreur
:roll:

Posté : 22 janv. 2009, 22:13
par niuxe
Salut,

1. Je pense que tu devrais lire ou relire ceci.

2. De mémoire la fonction fgets() lit le fichier ligne par ligne. Logiquement, ton script devrait être ceci :
$ListeChiffre = fopen ("listechiffre.txt" , "r");
while (!feof($ListeChiffre))
  {
  echo fgets($ListeChiffre, 1000);
  }
echo "<br />";
echo "Fin de fichier";
fclose ($ListeChiffre); 
Je te rappelle également que les tags html et leurs attributs s'écrivent en minuscule. Il y a différentes manière de lire un fichier txt :

1er exemple :
$chemin_fichier="monrepertoire/";
$nom_fichier="monfichier.txt";
$fichier_complet=$chemin_fichier.$nom_fichier;

$ressource=fopen($fichier_complet,'r');
$lecture=fread($ressource,filesize($nom_fichier));
fclose($ressource);
echo $lecture;
2e exemple:
$chemin_fichier="monrepertoire/";
$nom_fichier="monfichier.txt";
$fichier_complet=$chemin_fichier.$nom_fichier;

echo $lecture=file_get_contents($fichier_complet);

*code fait de tête

Ces deux exemples permettent de lire des fichiers plus rapidement. Le hic, il ne faut pas que ces fichiers doivent être trop lourd.

++

Posté : 22 janv. 2009, 22:14
par Ryle
essaye avec : <?php

mdr , ce sont les truc de ce genre que l'on regarde en dernier.
Ce n'est effectivement pas le "<br>" qui pose problème, mais bien le ">" qui vient refermer la balise "<?" qui n'est vraissemblablement pas interprétée par php (voir le code source de ta page)

Donc option 1, tu utilises les balises "<?php" et tu n'auras ainsi pas à te soucier de la configuration du serveur ou seront déployés tes scripts (bieeeenn :)).
Option 2 tu as la main sur le fichier de config php.ini et tu actives les short open tags pour que les balises "<?" soient prises en compte sur tous les serveurs où tes scripts pourraient être exécutés (paaaas bien ;))

Posté : 22 janv. 2009, 22:14
par rolusseum
Il m'ont l'air correct ses scripts.
Je ne sais pas, si faire des essais de scripts à vide, tel quel, pourra t'éclairer.

Construit toi même un script en t'inspirant de ce code.
Essaye de comprendre chaque ligne de code et les fonctions qui le compose.
Par exemple pour fgets voir
[url]
http://www.manuelphp.com/php/function.fgets.php
[/url]

Posté : 22 janv. 2009, 22:18
par rolusseum
Oups!!!

Je viens après la bataille, vous êtes trop rapide pour moi.:-))))

Posté : 23 janv. 2009, 03:20
par Plustration
Merci à tous pour vos conseils
Je vais m'attaquer à l'écriture/adaptation de ces scripts
J'ai juste un peu buter (très bêtement) dès le début sur cette histoire balise
merci encore