Hallo,
mein Nachtrag:
* ich hatte es vieleicht in der Problemdarstellung nicht klar ausgedrückt: es ging um das Verhalten von "unpack()", nicht von "pack".
* @hotte: ja, die Funktion "unpack()" ist von Perl ausgeliehen.
* Habe vor der Fragestellung einen wichigen Hinweis der der PHP-Doku zu unpack (nicht zu pack) übersehen. Der Text:
Achtung
Beachten Sie, dass PHP Integer-Werte intern mit Vorzeichen speichert.
Wenn Sie einen großen vorzeichenlosen Longwert entpacken und er von
der selben Größe ist, die PHP für dessen Speicherung verwendet, wird
das Ergebnis ein negativer Wert sein (auch wenn Sie dieses als
vorzeichenlos zu entpacken angegeben haben).
Letztendlich ist das Problem wohl philiosophisch. Die Funktion unpack() kann zwar positive Zahlen groesser 2^15 (bis 2^16) darstellen. Da die Funktion unpack() aber immer in mit einem Array von Interger antwortet, und das Longinteger-Intervall von PHP von minus 2^15 bis plus 2^15 geht, passiert der Fehler beim auswerten des Arrays.
Das passt auch zu dem Datentyp-Hinweis von Tom.
Mit dem Verhalten von unpack() kann ich leben wenn es stabil ist !!! Stabil meint Prozessorunabhängig (ich will mein Prog. bei verschiednen Webhostern ablegen) und auch in zukünftigen PHP-Versionen so bleibt.
Danke für Hilfe (ich schau nochmal rein falls jemand noch was schreibt), Gerold