Antworten auf deine Fragen:
Neues Thema erstellen

Bitfolge in String Konvertieren

rey

Der Frager ;)

hi,
gibt es eine Möglichkeit mittels PHP eine Bitfolge in einen String zu konvertieren bsp.
01000100 01110010 01100001 01100111
01101111 01101110 01011011 01001011
01101110 01101001 01100111 01101000
01110100 01011101
Die normale ausgabe schaut nämlich so aus
\M+�€?@`�€Àv�˜wÉÁö*
Es wurde mir gesagt man solle sich die Bitfolge anschauen und diese dann wiederum in einen String Konvertieren.
Bei google gebe ich als suche ein Integer to string,
Bitfolge konvertieren+php;
Sind die Suchansätze falsch?
würde mich über einen schlüssel begriff freuen.
 
Zuletzt bearbeitet:

WeeGee77

Noch nicht viel geschrieben

AW: Bitfolge in String Konvertieren

Ohne Ahnung von PHP-Möglichkeiten:
Ein Array[0..255] in dem für jedes Byte die entsprechende Bitkombination als String steht. Dieser wird dann statt dem Byte-Wert ausgegeben. Ist vielleicht nicht elegant, aber schnell und einfach (Lookup Table Verfahren).
Ansonsten halt nach dem klassischen Verfahren die einzelnen Bitwerte ausrechnen und hinschreiben.
 

Haetti

Nicht mehr ganz neu hier

AW: Bitfolge in String Konvertieren

wenn ich dich richtig verstehe, möchtest du jeweils die Zeichen mit dem jeweiligen Binärcode haben. Sprich, das erste Zeichen soll das Character mit Bin-Code 01000100 sein, richtig?

In diesem Fall würde wahrscheinlich chr() weiterhelfen. Dazu müsstest du erst den Binär-Code in Dezimal-Code umwandeln und dann das Zeichen per chr() ausgeben.

Bsp.:
Code:
echo chr(bindec('01000100'));
Ist es das, was du suchst?


Edit: hab's mal mit deinen Zeichen ausprobiert und es ergibt den String "Dragon[Knight]". Scheint wohl das richtige gewesen zu sein...?
 

netbandit

Aktives Mitglied

AW: Bitfolge in String Konvertieren

z.B. so:

PHP:
<?php
$bitstring='01000100 01110010 01100001 01100111
01101111 01101110 01011011 01001011
01101110 01101001 01100111 01101000
01110100 01011101 ';
$bitstring=preg_replace('/[^01]/', '', $bitstring);

#$arr=split(' ', $bitstring); // anhand der Leerstellen aufsplitten
$arr=str_split($bitstring,8); // in acht Zeichen zerlegen
foreach($arr as $v)
{
echo chr(bindec($v));
}
// -> Dragon[Knight]
?>
 
Zuletzt bearbeitet:

rey

Der Frager ;)

AW: Bitfolge in String Konvertieren

@netbandit mit preg_replace im code wird nichts ausgegeben ;)
wenn man diese Zeile entfernt funktioniert es. Danke euch beiden.
Das Ist das richtige Resultat das Problem ist das die Bitfolge gepackt ist.
Ich hatte nämlich mal vor die Header Informationen aus einer Datei aus zulesen.
http://www.php-resource.de/forum/php-developer-forum/97597-header-information-auslesen.html
das große Problem ist das es eben nochmal gepackt ist.
ich wollte anhand der bits einen vergleich starten wenn diese Bitfolge in der im OFFSET 72 vorkommt dann soll Ergebnis 1 sein ansonsten 0

PHP:
$FileHandle = fopen('test.rep', 'r');
fseek($FileHandle,72);
$Name = fread($FileHandle,25); 
echo "$Name \n"; 
so bekomme ich es schon als String siehe weiter oben das komisch kodierte.
aber gepackt Bitströme mit php zu Entschlüsseln ist unmöglich oder?
Ich habe es mal so versucht
PHP:
$packed = unpack('C*', $Name);
array_walk($packed, create_function('&$var', 'return $var = (string) sprintf("%08b", $var);'));
implode('',$packed);
foreach($packed as $pack)
{
echo chr(bindec($pack));
}
da bekomme ich aber wieder die falsch Kodierte Ausgabe.
 

Haetti

Nicht mehr ganz neu hier

AW: Bitfolge in String Konvertieren

das ewige Problem mit den Zeichensätzen.

Wie ist denn die Datei codiert? Das kriegst du wahrscheinlich hin, wenn du den Zeichensatz der Ausgabe änderst:

PHP:
header('Content-type: text/html; charset=utf-8');

Wahrscheinlich ist es utf-8 oder iso-8859-1.

Bitte gib Bescheid, ob es weitergeholfen hat oder nicht.

Gruss
Hätti
 

Haetti

Nicht mehr ganz neu hier

AW: Bitfolge in String Konvertieren

ist natürlich schwierig zu sagen, was du nun benötigst. Ich weiss weder wie die Datei codiert ist, noch welchen Charset du benötigst.

Vielleicht helfen dir die Funktionen utf8_encode() und utf8_decode() weiter. Diese codieren ISO-8859-1-Strings in UTF8-Strings bzw. umgekehrt.
 

rey

Der Frager ;)

AW: Bitfolge in String Konvertieren

Bei google findet man den Quellcode fürs entpacken der Datei mit Java.

Aber wie diese dort gepackt ist. Wird einem leider auch nicht klar.
Vielen Dank wie gesagt glaube nicht das man es mit php hin bekommt.
Die Komprimierung ist
n | m bytes | 0x279 bytes | Replay Header
 
Zuletzt bearbeitet:

Haetti

Nicht mehr ganz neu hier

AW: Bitfolge in String Konvertieren

kannst du mir die Datei vielleicht mal geben? Vielleicht kann ich mit ihr was anfangen (absolut ohne Garantie)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben