Binair bestand lezen in php en converteren naar string

Ik heb hier bijna een dag voor besteed, maar kreeg geen succes.

Wat ik wil doen is, ik heb een binair bestand "data.dat"

Ik wil de inhoud van het bestand lezen en het in tekstformaat in bijvoorbeeld "data.txt" in PHP uitvoeren.

Ik probeerde de functie van PHP uit te pakken, maar vereist dat het type als eerste argument wordt vermeld (mogelijk is mijn fout, nieuw voor php).

$data = fread($file, 4);//4 is the byte size of a whole on a 32-bit PC.     
$content= unpack("C", $data);    //C for unsigned charecter , i for int and so on...

Maar wat als ik dat niet weet op welke plaats, welk type gegevens wordt opgeslagen in het bestand dat ik aan het lezen ben?

Deze functie beperkt me vanwege het type.

Ik wil iets vergelijkbaars

$content= unpack("s", $data);   //where s can denote to string

Bedankt.

0
Welnu, wat is opgeslagen in het .dat-bestand? Als je het niet weet, weten we het niet. Als het alleen maar tekst is, hoeft u helemaal niets te doen.
toegevoegd de auteur deceze, de bron
Je zou kunnen proberen bestandsinformatie te gebruiken om het bestandstype te identificeren, maar als dat niet werkt, ben je SOL. Je kunt niet van iets omzetten als je niet weet waar je van converteert. PHP is geen magie.
toegevoegd de auteur GordonM, de bron
Ohhh, ik bedoel, ik weet dat het bestand binaire gegevens @deceze en GordonM bevat, sorry als je het anders vindt. Ik wens een volledige conversie van die bestandsgegevens naar leesbare tekst.
toegevoegd de auteur Akash Saikia, de bron

1 antwoord

PHP heeft geen "binair" type. Binaire gegevens worden opgeslagen in strings. Als u binaire gegevens van een bestand leest, is deze al opgeslagen als een tekenreeks. U hoeft het niet om te zetten in een string.

Als de binaire gegevens al tekst in een standaardcodering vertegenwoordigen, hoeft u niets te doen omdat u al een geldige tekenreeks hebt. Als de binaire gegevens een bepaalde codering vertegenwoordigen, moet u weten wat u ermee moet doen, we weten het niet.

3
toegevoegd
Dan moet je weten wat voor soort codering het is. Gewoon "binaire .dat" betekent niets. Alles is binair in een computer. Als je niet weet wat dat binaire formaat is en hoe je er leesbare tekst uit krijgt, weten we het ook niet.
toegevoegd de auteur deceze, de bron
Lijkt mijzelf niet duidelijk met de vraag. Maar het bestand is .Dat, het heeft binaire gegevens, die niet door mensen leesbaar zijn. Mijn php-programma opent de bestandsstream met $ handle = fopen ("bestandsnaam", "rb"); . En als ik nu het bestand lees, krijg ik de bestandsinhoud van de tekenreeks, maar onthoud dat deze reeks een eenvoudige tekst is die niet leesbaar is voor mensen, maar alleen de gecodeerde gegevens en lijkt op '@ #' en een aantal onleesbare charecters. Ik wil dat dit wordt opgeslagen als menselijk leesbare tekst, waarbij dat verminkte karakter bijvoorbeeld bedoeld is voor tekst "Amerika" en niet als "@ #".
toegevoegd de auteur Akash Saikia, de bron
ja, zijn ASCII-codering, en ik accepteer het feit dat alles binair is in computer @deceze, gewoon in de war met dit probleem.
toegevoegd de auteur Akash Saikia, de bron