XBMC使用的CRC32函数与PHP的CRC32函数算法不同,同一个字符串“123456789”,XBMC处理后返回0x0376E6E7,而PHP返回0xCBF43926,所以只能把XBMC使用的C#的CRC32函数port到PHP了,函数如下
function xbmc_crc32($str){
$m_crc = 0xFFFFFFFF;
$bytes = unpack('C*', strtolower($str));
foreach($bytes as $byte) {
$m_crc = $m_crc ^ ( $byte << 24 );
for ($rep = 0; $rep < 8; $rep++) {
if ( DECHEX( $m_crc & 0x80000000) == DECHEX(0x80000000)) {
$m_crc = ($m_crc << 1) ^ 0x4C11DB7;
} else {
$m_crc = ($m_crc << 1);
}
}
}
return (int)$m_crc;
}



