通常 hexdec() を使用しますが、大きい値は float で帰ってくるのでその処理をする必要があります。
function bchexdec($hex)
{
$dec = 0;
$len = strlen($hex);
for ($i = 1; $i <= $len; $i++) {
$dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
}
return $dec;
}
$hash = "FFFFF78001FFFFFF";
$f = bchexdec($hash);
echo $f ."\n";
結果
18446734727894269951
php-bcmath モジュールが必要です。インストールする必要があります。
https://stackoverflow.com/questions/1273484/large-hex-values-with-php-hexdec