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 dans un fichier [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut Ecriture dans un fichier
    Bonjour,

    Le titre n'est pas très explicite, je vous prie de m'en excuser.
    Quand je veux écrire de l'hexadécimal dans un fichier je fais :
    Ca fonctionne correctement.
    Je n'ai pas encore trouvé la solution si mon nombre se trouve dans une variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $hex = '00';
    fwrite($out, ????????);
    Un coup de main serait le bienvenu.
    Merci d'avance.
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    comme ça
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $hex = "\x00";
    fwrite($out, $hex);
    Le bienfait n'est jamais perdu

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Merci pour la réponse mais mon problème est légèrement différent, je ne connais pas le contenu de la variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $longueur = strlen($str);
    $longueurHex = dechex($longueur);
    $tabLongueurHex = str_split($longueurHex, 2);
    foreach($tabLongueurHex as $val) { 
    	$tmp = ???;
    	fwrite($out, $tmp);
    }
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,

    et si tu expliquais plus clairement et en détails ce que tu veut faire ?
    notamment :
    • à quoi ressemble le $str de départ ?
    • que cherches-tu à enregistrer ?
    • pourquoi en hexadécimal ?
    • ...



    On voit là plusieurs fonctions, dont certaines ne fonctionnent pas en UTF-8 (strlen),... ça me parait bien compliqué...

  5. #5
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Je cherche à introduire des chunks dans des fichiers png.
    Pourquoi ASCII ? parceque le texte dans les chunks est codé en ASCII.

    Un chunk se compose de 4 parties :
    - longueur des datas du chunk sur 4 octets
    - Type du chunk sur 4 octets
    - datas de longueur indéterminée
    - crc de la concaténation du type et des datas sur 4 octets

    Je veux introduire un chunk de type texte : un keyword + un caractere NULL + le texte de longueur indéterminée.

    Pourquoi sous forme hexa ? pour rien, si il est possible d'enregistrer du décimal, ça me va.
    J'arrive à créer le chunk et le récupérer dans un fichier sous la forme d'un string qui contient les valeurs hexadécimales (sous forme de chaine de caractère).

    Pour vérifier que le fichier image n'est pas altéré par l'introduction du chunk, j'ai, manuellement, récupéré dans ce fichier chaque valeur hexadécimale et j'ai codé en dur pour chaque octet du chunk. Le fichier png ainsi obtenu me donne bien l'image de départ et le chunk ajouté par mes soins n'altère en rien le fichier.

    Mon problème est que je ne parviens pas à automatiser le processus. Si je récupère les string représentants les valeurs hexadécimales dans une variable je ne sais pas les enregistrer sous la forme d'un octet dont la valeur est celle représentée par le string.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = 26;
    fwrite($out, $var);
    quand j'ouvre $out, j'y trouve 2 octets : 31 26 qui sont les codes ascii de 2 et de 6
    Je voudrais y trouver 1 octet qui contienne 26
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 088
    Points
    43 088
    Par défaut
    Tu veux gérer les métadonnées telles que l'auteur, la date etc. ?

    Dans ce cas, je regarderais ceci :
    http://php.net/manual/fr/function.exif-read-data.php

    Il ne semble pas y avoir de fonctions exif_write_data

    Tu as une bibliothèque pour gérer ça :
    https://github.com/pel/pel
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Tu veux gérer les métadonnées telles que l'auteur, la date etc. ?
    En gros, oui mais sur des fichiers au format png.

    J'avais hésité entre c++ et php. J'ai peut-être choisi le mauvais cheval.
    Je vais tenter le coup en c++.

    Merci pour tes recherches.
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 088
    Points
    43 088
    Par défaut
    C'est faisable aussi en PHP.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    3 jours que je sèche sur ce problème alors que la solution est d'une simplicité inouïe.

    Il suffit d'utiliser la fonction chr() qui renvoie le caractère du code ascii.

    Comme on dit par chez moi : 'Pu vi pu biesse' (plus vieux plus c...)
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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