Hallo james!
Ich hab sowas auch mal von Assembler nach C nach PHP 'portiert', und hatte dabei mit den Typen Probleme (Die Integer in PHP sind prinzipiell vorzeichenbehaftet). Nur habe ich den Code nicht hier und kann mich nicht genau erinnern - wenns bis Montag Zeit hat ...
Einen hab ich allerdings noch, statt:
$lnCrc32 = 0xFFFFFFFF; // <-- das ist ein Float, der bei der ersten bitoperation zerlegt wird!
mal so:
$lnCrc32 = -1;
probieren.
Ausserdem müsstest du in CRCTbl alle Zahlen grösser 0x7fffffff durch ihre vorzeichenbehaftete Darstellung ersetzen.
(also jeweils $JetzigerWert-4294967296, statt dem bisherigen Eintragen, wenn es denn negativ ist.)
Gruss,
Carsten