Tom: Typumwandlung unterbinden

Beitrag lesen

Hello,

Wenn ich nun in ein Array die Binärdaten hineinschreibe:
    $_numbers['pack'][$i] = pack('v', $i);
Dann wird das Element 0 immer nur ein Byte groß.

Bei mir nicht.

Ulkig.
Ich habe hier die PHP-Version 5.4.22 auf Xampp auf WinXP

Scheint auch irgendwie logisch, weil 0x00 wohl für NULL steht und das wird dann automatisch umgewandelt.

Warum sollte es umgewandelt werden? pack() liefert einen String. Du hast in dem Beispiel keinen Kontext, der eine Umwandlung in irgendeinen anderen Datentyp erfordern würde.

Tja, wenn ich es byteweise mache, geht es (noch).

[code lang=php]
$fp = fopen('pack.dat', 'wb+');
$_numbers = array();

for ($i = 0; $i < 256; $i++)
{
    $_numbers['pack'][] = chr(0);
    $_numbers['pack'][] = chr($i);
}

fwrite($fp, implode('', $_numbers['pack']));

[code]

Das ist erst eine Vorübung. Die Daten müssen nachher sicher in eine MySQL-Datenbank reingestopft werden. Das wird ein "VLI" very long index. Die Sortierung muss dann als binary String erfolgen. Laut Manual soll das noch funktionieren.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com