我有一行Python,我想将其转换为PHP
code = '%08x' % (binascii.crc32(summ) & 0xffffffffL)
据我了解,binascii.crc32
的 php 等价物是 crc32()
,我可能是错的,但0xffffffffL
使有符号整数为正数,所以我会使用abs()
我已经尝试过了,但我没有得到输出,甚至没有错误消息
$code = '%08x' % abs(crc($summ));
使用php获取python输出的正确方法是什么?
更新:
我现在已经创建并运行了一个 Python 脚本和一个 PHP 等效项,输出略有偏差。
蟒
import binascii
file = open("test.json","r")
source = file.read()
key1 = 'Y3xFZ4'
key2 = 'ABC123'
summ = bytes(source + key1 + key2, encoding='utf-8')
print (binascii.crc32(summ))
code = '%08x' % (binascii.crc32(summ) & 0xfffffff)
print (code)
file.close()
输出
2416307871 0005ee9F
.PHP
$json = '{ "name":"John", "age":30, "car":null }';
$summ = $json . 'Y3xFZ4' . 'ABC123';
$test = sprintf("%u", crc32($summ));
$code = dechex((float) $test);
echo $test . ' ' . $code;
输出
2416307871 9005EE9F
可能导致最终输出开始时差异的原因
您的& 0xfffffff
缺少f
。