Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2017, 19:07   #1
Kryk1979
Новичок
Джуниор
 
Регистрация: 04.04.2017
Сообщений: 3
По умолчанию long2ip в php 7.1

Всем привет .
такая ситуация ..
не работает функция decode_ip на php 7.1
на php 7.0 все нормально ..
вот полная функция

PHP код:
function decode_ip ($ip)
{
    return 
long2ip("0x{$ip}");

ругается на эту строчку
PHP код:
return long2ip("0x{$ip}"); 
Notice: A non well formed numeric value encountered in

Как поправить ..
спасибо .
Kryk1979 вне форума Ответить с цитированием
Старый 04.04.2017, 20:12   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

https://raw.githubusercontent.com/php/php-src/PHP-7.1.0/UPGRADING
Цитата:
- long2ip() accepts integer as parameter now
Andkorol вне форума Ответить с цитированием
Старый 04.04.2017, 20:29   #3
Kryk1979
Новичок
Джуниор
 
Регистрация: 04.04.2017
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
понятно , а как поправить то ? или ни как ?
Kryk1979 вне форума Ответить с цитированием
Старый 04.04.2017, 22:43   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Передавать в функцию число – а не строку, вроде ж очевидно.
Andkorol вне форума Ответить с цитированием
Старый 05.04.2017, 06:50   #5
Kryk1979
Новичок
Джуниор
 
Регистрация: 04.04.2017
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Передавать в функцию число – а не строку, вроде ж очевидно.
Спасибо за ответы . Я бы не писал тут , если бы знал как сделать )))
В php нуб )))

в принципе вот весь код .. может подправите .

PHP код:
function encode_ip ($ip)
{
    
$d explode('.'$ip);
    return 
sprintf('%02x%02x%02x%02x'$d[0], $d[1], $d[2], $d[3]);
}

function 
decode_ip ($ip)
{
    return 
long2ip("0x{$ip}");
}

function 
ip2int ($ip)
{
    return (float) 
sprintf('%u'ip2long($ip));  // для совместимости с 32 битными системами
}

// long2ip( mask_ip_int(ip2int('1.2.3.4'), 24) ) = '1.2.3.255'
function mask_ip_int ($ip$mask)
{
    
$ip_int is_numeric($ip) ? $ip ip2int($ip);
    
$ip_masked $ip_int | ((<< (32 $mask)) - 1);
    return (float) 
sprintf('%u'$ip_masked);
}

function 
bb_crc32 ($str)
{
    return (float) 
sprintf('%u'crc32($str));
}

function 
hexhex ($value)
{
    return 
dechex(hexdec($value));
}

function 
verify_ip ($ip)
{
    return 
preg_match('#^(\d{1,3}\.){3}\d{1,3}$#'$ip);

Kryk1979 вне форума Ответить с цитированием
Старый 05.04.2017, 10:05   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Конвертация IPv4 IP-адреса в целое число и обратно на любых актуальных версиях PHP происходит и так без проблем с использованием штатных функций ip2long и long2ip соответственно:
https://3v4l.org/uBEnX
Для кодирования IP в целое число – используй ip2long.
Для обратного декодирования IP из целого числа в форматированую строку – используй long2ip.
Примеры использования этих функций показаны по ссылке, работает в PHP 5.6.0 – 7.1.3.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват данных из span id и вывод средствами php на сайте - PHP nikolokaputik80 PHP 2 04.05.2016 10:52
статья - Бесплатный PHP, HTML, CSS, JavaScript редактор ? Codelobster PHP Edition Pblog Обсуждение статей 0 20.04.2012 14:50
TopServer(PHP+MySQL+Apache+/etc), и обновление компонентов(в основном PHP) Пепел Феникса Софт 2 05.11.2011 14:38
Вебинар по PHP - для тех, кто хочет начать изучение PHP, 30 июля. PHPLance HTML и CSS 0 23.07.2011 22:33
что не так с php кдом или с настройками MySQL+PHP Jimmi Помощь студентам 2 27.12.2010 09:03