[PHP] File naar binary

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • X4n
  • Registratie: December 2005
  • Laatst online: 25-08 16:59
Beste mede tweakers,

Ik heb nu al een aantal dagen opzoek naar een manier om een file inte lezen, en deze dan in binary weer te geven (011010101011111010001).

Op dit moment heb ik het volgende:

$filename = "test.mp3";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);

Dit is niet binary in "00101011", maar het wordt weer gegeven in "ÿû&#144;`òá:<&#129;éàXGG€=‚\ë%&#129;v".

Hebben jullie enig idee? b.v.d.

X4n

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Weet je wat binairy inhoud? Wat jij wil is dat elke byte wordt uitgeschreven in het binaire stelsel. Wat je doet is gewoon de bytes afdrukken (Aangezien dat geen tekst is krijg je dus ook geen text).

Wil je 0etjes en 1tjes dan zul je elke byte om moeten zetten naar 0etjes en 1tjes.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien kan je met deze php functie wat zoeken. http://www.php.net/manual/nl/function.pack.php

Acties:
  • 0 Henk 'm!

  • elTigro
  • Registratie: November 2000
  • Laatst online: 04-05 13:01

elTigro

Es un Gringo!

misschien dat om te printen de functie unpack() handiger is dan...
misschien is deze functie nog handiger. Er staat zelfs een voorbeeldje (2) bij, zij het dan voor tekststrings...
http://nl3.php.net/manual/nl/function.preg-split.php

[ Voor 58% gewijzigd door elTigro op 14-06-2006 16:59 ]

Lazlo's Chinese Relativity Axiom:No matter how great your triumphs or how tragic your defeats --approximately one billion Chinese couldn't care less.


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Of je pompt alle tekens door printf:
PHP:
1
2
3
4
5
$mp3 = file_get_contents('madonna - ray of light.mp3');

for ($i = 0; $i < strlen($mp3); $i++) {
    printf('%b ',ord($mp3{$i}));
}

[ Voor 19% gewijzigd door Skaah op 14-06-2006 16:54 . Reden: ord, chr, grr. ]


Acties:
  • 0 Henk 'm!

  • ReverendBizarre
  • Registratie: December 2001
  • Laatst online: 24-03-2021
pack en unpack heeft hier dus weinig mee te maken. De topic starter wil gegevens binair op het scherm printen en dan zal je inderdaad met printf() of iets dergelijks aan de slag moeten. Alhoewel ik me wel afvraag wat hier uberhaupt het nut van is, en echt efficient zal het ook niet zijn. Overigens, als je binair netjes per byte weer wilt geven is het handig om printf met de volgende format string aan te roepen:

PHP:
1
   printf("%08b", $byte);
Pagina: 1