Hi James!
[...] If ($lnCRC32 < 0) $lnCRC32 = Intval($lnCRC32 + 0x100000000);
Das macht Probleme. PHP behandelt Integer als vorzeichenbehaftet und klippt bei der Konvertierung auf die Grenzen. Eventuell erfolgt auch eine Typkonvertierung in Float - da geht dann auch mehr.
Für ne Lösung kann der Rückgabewert kein Integer mehr sein:
if($lnCRC32 < 0) $lnCRC32 = 4294967296+ $lnCRC32;
sollte gehen, da 4294967296 gleich als Float angelegt wird.
Gruss,
Carsten