Как это:
$(document).ready(function ()
{
document.title = "Hello World!";
});
убедиться установить заголовок по умолчанию, если Вы хотите, чтобы Ваш сайт был правильно индексирован поисковыми системами.
Немного подсказки:
$(function ()
{
// this is a shorthand for the whole document-ready thing
// In my opinion, it's more readable
});
Как сказано на странице руководства hexdec :
Теперь функция может преобразовывать значения которые слишком велики для платформ целочисленный тип, он вернет значение как float в этом случае.
Если вы хотите получить какое-то большое целое число (не float), вам нужно, чтобы оно было сохранено внутри строки. Это может быть возможно с помощью функций BC Math .
Например, если вы посмотрите комментарии на странице руководства по hexdec, вы найдете это примечание
Если вы адаптируете эту функцию немного, чтобы избежать уведомления, вы получите:
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;
}
(Эта функция была скопирована из заметки, на которую я ссылался; и только немного адаптирована мной)
И использовать ее на своем номере:
$h = 'D5CE3E462533364B';
$f = bchexdec($h);
var_dump($f);
Результатом будет:
string '15406319846273791563' (length=20)
Итак, не такой большой, как у вас; и, похоже, все в порядке с тем, что вы ожидаете:
Результат от calc.exe = 15406319846273791563
Надеюсь на эту помощь ;-)
И да, пользовательские примечания к документации PHP иногда являются настоящей золотой жилой; -)
hexdec () переключается с int на float, когда результат слишком велик для представления в виде int. Если вам нужны произвольно длинные значения, вам, вероятно, придется использовать собственную функцию преобразования, чтобы изменить шестнадцатеричную строку на целое число GMP .
function gmp_hexdec($n) {
$gmp = gmp_init(0);
$mult = gmp_init(1);
for ($i=strlen($n)-1;$i>=0;$i--,$mult=gmp_mul($mult, 16)) {
$gmp = gmp_add($gmp, gmp_mul($mult, hexdec($n[$i])));
}
return $gmp;
}
print gmp_strval(gmp_hexdec("D5CE3E462533364B"));
Output: 15406319846273791563
1.5406319846274E + 19 - это ограниченное представление вашего номера. Вы можете получить более полный, используя printf ()
printf("%u\n", hexdec($h));
... выведет "15406319846273792000". PHP использует числа с плавающей запятой для таких больших чисел, поэтому вы можете немного потерять точность. Если вам нужно работать с числами произвольной точности, вы можете попробовать расширение bcmath . Разделив шестнадцатеричный код на два 32-битных слова (что должно быть безопасным в большинстве систем), вы сможете добиться большей точности. Например:
$f = bcadd(bcmul(hexdec(substr($h, 0, -8)), 0x100000000), hexdec(substr($h, 8)));
... установит для $ f значение 15406319846273791563.
Разве intval (var, base)
не позаботится об этом?
Из руководства PHP .