IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ecriture d'un nombre dans un fichier de 3 ou 4 chiffres


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 42
    Points
    42
    Par défaut Ecriture d'un nombre dans un fichier de 3 ou 4 chiffres
    Bonjour à tous,

    Je fais suite à mes posts en javascript et je suis toujours sur ma petite initiation au html , css, JS, et php par le concret !

    Je souhaite donc écrire un chiffre dans un fichier. Ensuite mon navigateur va lire se chiffre pour l'afficher et suivant sa valeur faire des trucs ( pas encore définis).
    Ce chiffre à écrire je le reçois en argument dune requête GET .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GET /analogique.php?V_ana=1234 HTTP/1.1

    Ce nombre peut varier de 0 à 65535...... Donc de 1 chiffre à 5 chiffres . Le hic c'est que quand je passe de 4 nombres par exemple : 1234 à 3 nombres exemple 789 , j'ai le 4iéme nombre qui reste je me retrouve avec 7894 . Et du coup mon navigateur lit 7894 au lieu 789.

    J'ai essayer de très nombreux subterfuges en concaténant des espaces avant, après en mettant des retours à la ligne avec des fputs des fwrites ...... bref.... aucune solution fiable ne fonctionne.
    Je pense que le problème vient du fait que la récupération de la variable est une chaine de caractères et peut être à un retour à la ligne qui est placé à la fin

    voici le fichier en question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    1234      
     
     
     
    <?php
     
                $monfichier = fopen('analogique.php', 'r+'); // j'ouvre le fichier et je place le curseur au début
                //fputs($monfichier, "       ");
                //fseek($monfichier, 0); // On met le curseur en position
                fwrite($monfichier, $_GET['V_ana']);    // On écrit les données
                fwrite($monfichier, "  ");
                //fputs($monfichier, "  " );    // On écrit les données
                fclose($monfichier);
    ?>
    Avez vous une solution pour palier à ce problème ?

    Merci de m'avoir lu !

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 548
    Points
    8 548
    Billets dans le blog
    17
    Par défaut
    C'est parce que tu ouvres ton fichier en mode "r+"

    Généralement, et à moins de savoir très précisément ce qu'on veut, il vaut mieux se cantonner aux modes "classiques" suivants :

    "r" => Lecture
    "w" => Ecriture avec suppression du contenu préexistant
    "a" => Ecriture à la suite du contenu du fichier

    Je te laisse déterminer le mode te convenant

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 42
    Points
    42
    Par défaut
    Bonjour Seb ,

    Merci pour ta réponse. En fait le fichier s’appelle lui-même, il s'auto écrit dessus lol . Donc en faisant en "w" , j'efface mon fichier qui dit d'écrire !

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 102
    Points : 42
    Points
    42
    Par défaut
    Bon j'ai résolu mon problème par un moyen détourné.

    Je vais donc laisser tombé la compréhension de cette partie.
    En fait dans la construction de ma requête, je rajoute un "0" si le chiffre est inférieur à 1000, je rajoute deux zéros si le chiffre est inférieur à 100 et 3 zéros si le chifffre est inférieur à 10.
    Ce n’est pas conventionnel et c'est moche car j'ai ides 0 devant mais bon !!!.

    J'essaye d'avancer comme je peux .

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 548
    Points
    8 548
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par dje8269 Voir le message
    Merci pour ta réponse. En fait le fichier s’appelle lui-même, il s'auto écrit dessus lol . Donc en faisant en "w" , j'efface mon fichier qui dit d'écrire !
    Il me semble que c'est justement ce que tu veux faire => Supprimer une ancienne donnée et écrire une nouvelle donnée "à la place"

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Ecrire une valeur dans un fichier PHP qui exécute lui même des choses est une erreur.
    Ecris ta valeur dans un fichier dédié à cela.

    Pour écrire la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents('analogique.dat',$nombre);
    Pour la récupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nombre= file_get_contents('analogique.dat');

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 548
    Points
    8 548
    Billets dans le blog
    17
    Par défaut
    Ouch, j'avais pas compris ça

Discussions similaires

  1. Ecriture liste de nombre dans un fichier
    Par fredd0 dans le forum Débuter
    Réponses: 2
    Dernier message: 23/03/2008, 12h58
  2. ecriture d'un tableau dans un fichier
    Par hafid49 dans le forum C
    Réponses: 4
    Dernier message: 06/06/2006, 23h38
  3. Ecriture à une position donné dans un fichier
    Par xarius dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/05/2006, 16h05
  4. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo