2017-06-27 80 views
0

我想在PHP中實現如下所述的某些內容:https://webapps.stackexchange.com/a/101153。到目前爲止,以下似乎工作:PHP 5.5/32位機器上的打包格式爲「Q」

編碼

return rtrim(strtr(base64_encode(pack('Q', $int64)), '+/', '-_'), '='); 

解碼

$bytes = base64_decode(strtr($data, '-_', '+/')); 
return unpack('Q', $bytes)[1]; 

不幸的是在64位系統和PHP5.6.3這隻能+其中 「Q」引入了pack/unpack的格式。

我有什麼可能性來實現相同的功能,將在php5.5 64 & 32位工作相同?

+1

'Q'是依賴於機器的字節順序更棘手,但這可能有所幫助:https://stackoverflow.com/a/41060369/468027 – Narf

+0

謝謝@Narf - 我想我可能已經與以下組合獲得了大獎: http://php.net/manual/en/function.base-convert.php#106546,很高興爲您發佈它作爲答案,所以我可以接受它? – lifeofguenter

+1

我不太喜歡發佈不完整的答案。另外,你正在做一些非常具體的事情,這不太可能幫助其他用戶......無論如何,應該鼓勵每個人都升級他們的PHP版本。 :) – Narf

回答

相關問題