Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Разный результат функции ip2long


Автор: PriZraK 16.9.2008, 23:30
Здравствуйте.

Код

<?php print ip2long('213.141.226.99'); ?> 


1 сервер с PHP версии 4.4.7 возвращает число «3582845539».
2 сервер с PHP версии 5.2.1 возвращает число «-712121757».

С чем это может быть связано?

Автор: skyboy 17.9.2008, 00:24
так как в сумме они успешно дают 4294967296, то, следовательно, в первом случае возвращается unsigned, а во втоорм случае - signed. 4-байтовое число. почему так, правда, не знаю. но вижу, что все дело в типе.

Автор: PriZraK 17.9.2008, 11:00
Разобрался.
Код

<?php print sprintf("%u", ip2long('213.141.226.99')); ?>

Выведет правильный результат — «3582845539».
Ответ нашёл тут — http://bugs.php.net/bug.php?id=39301

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)