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

plustration
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 20:37

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]

Eléphant du PHP | 447 Messages

22 janv. 2009, 21:00

hi,

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

http://fr.php.net/manual/fr/function.nl2br.php
Probably (only a) Human Problem?

Plustration
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 21:09

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

Eléphant du PHP | 447 Messages

22 janv. 2009, 21:33

ben moi non plus...

je ne comprends pas ce qu'est censé faire ton code :?
Probably (only a) Human Problem?

Mammouth du PHP | 991 Messages

22 janv. 2009, 21:53

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.
Modifié en dernier par thehawk le 22 janv. 2009, 21:57, modifié 1 fois.
DevOps, Symfony4, Hoa

Plustration
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 21:55

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

Plustration
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 21:58

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

Mammouth du PHP | 991 Messages

22 janv. 2009, 21:59

J'ai éditer , mon dernier post vérifie ce que j'ai écrit


Bonne soirée Hawk
DevOps, Symfony4, Hoa

Invité
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 22:10

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

Plustration
Invité n'ayant pas de compte PHPfrance

22 janv. 2009, 22:11

et je ne crois pas que je referai cette erreur
:roll:

Eléphant du PHP | 453 Messages

22 janv. 2009, 22:13

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.

++
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 janv. 2009, 22:14

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 ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 139 Messages

22 janv. 2009, 22:14

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]

Eléphant du PHP | 139 Messages

22 janv. 2009, 22:18

Oups!!!

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

Plustration
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 03:20

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