Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2011, 17h26   #1
Membre du Club
 
Inscription : juin 2006
Messages : 241
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 241
Points : 40
Points : 40
Par défaut Conversion en binaire et écriture dans un fichier

Bonjour,
Je vais avoir besoin de vos précieuses connaissances parce que de mon cote je cale un peu.
Mon but est d’ouvrir et d’écrire dans un fichier binaire en PHP.
Pour l’ouverture, voici mon code :
Code :
1
2
 
$fp = fopen('test', 'wb');
Cependant, je cale au niveau de l’écriture dans le fichier binaire car je voudrais décomposer le fichier binaire comme cela :
1er octet : insérer le chiffre 356 en binaire
2e octet : insérer le chiffre 586 en binaire
Et ainsi de suite…
Pour convertir le décimal en binaire j’ai utilisé « decbin » mais lors de l’écriture, il me l’écrit sans faire attention aux nombre d’octets.
Avez-vous une idée ?
Merci par avance
johnson95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h46   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
C'est pas la peine de passer par decbin, tu mets directement le nombre. Ce n'est pas parce que tu définis le flag binaire que ce que tu réccupère ou écrit doit être des suites de 1 et 0
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 17h54   #3
Membre du Club
 
Inscription : juin 2006
Messages : 241
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 241
Points : 40
Points : 40
Merci de ta réponse.

Cependant, comment fait on pour dire par exemple que le premier chiffre sera codé sur un octet et de même pour le suivant ?

Car si je fais comme tu l'as dit :
Code :
1
2
3
4
5
 
$fp = fopen('test', 'wb');
fwrite ($fp, 130);
fwrite ($fp, 56);
fwrite ($fp, 27);
Je me retrouve avec un fichier avec :
1305627

Merci.
johnson95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 18h07   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
utilise chr. Si le nombre n'est pas un caractère ASCII ( > 255 soit 1 octet) je ne sais pas trop comment faire je l'avoue...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 19h18   #5
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Il faut regarder du côté de pack() et unpack()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 21h19   #6
Membre du Club
 
Inscription : juin 2006
Messages : 241
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 241
Points : 40
Points : 40
Merci de ta réponse.

En fait, j'ai vu cette fonction mais je n'arrive pas à correctement l'utiliser malgré les exemple.
1 - Dans mon cas je voudrais mettre par exemple 236 sur 1 octet, comment dois je faire ?
Pour deux octets je pense que c'est (pour un nombre strictement positif) :
2 - D'autre part, connaissez vous un logiciel qui permet de lire un fichier binaire par octet pour bien vérifier ce que je fais ?

Merci par avance.
johnson95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 21h49   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
heu... un bon vieil éditeur hexadécimal.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 21h52   #8
Membre du Club
 
Inscription : juin 2006
Messages : 241
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 241
Points : 40
Points : 40
je vais tenter avec Winhex.

Par contre un fichier binaire lorsqu'il est lut par un éditeur du type bloc note il devrait nous afficher n'importe quoi non ?
johnson95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 09h17   #9
Membre du Club
 
Inscription : juin 2006
Messages : 241
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 241
Points : 40
Points : 40
Parfait !
La fonction pack fonctionne très bien!

Merci à tous !
johnson95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h13.


 
 
 
 
Partenaires

Hébergement Web