0
我這行的Python,我要轉換爲PHPPython的binascii.crc32()到PHP CRC()
code = '%08x' % (binascii.crc32(summ) & 0xffffffffL)
據我瞭解,在PHP相當於binascii.crc32
是crc32()
,我可能是錯的但0xffffffffL
使得符號整數積極的,所以我會用abs()
我都試過,但我沒有得到任何輸出甚至不是一個錯誤消息
$code = '%08x' % abs(crc($summ));
什麼是正確的方式來獲得python的輸出,但使用PHP?
UPDATE:
我現在已經建立並運行一個Python腳本,也是一個PHP當量,輸出稍微偏離。
的Python
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
什麼能在最終輸出的開始導致的差異
您正在尋找'sprintf',相當於Python的'%'字符串格式。 – deceze