Что такое код gmp_strval

gmp_strval gmp_init ошибка (преобразование ip-адресов)

Я получаю ошибку с немного заимствованного кода, который я использую, чтобы получить долготу и широту от IP-адресов. Он работал в прошлом — так же, как и на прошлой неделе — но я получаю сообщение об ошибке, вызванное этой строкой кода:

Проблема, похоже, исходит от gmp_strval & gmp_init. По-видимому, у моего общего сервера иногда есть gmp-библиотека, а иногда нет (я не могу представить какую-либо другую причину ошибки, поскольку она работала до каких-либо изменений кода).

Эта строка относится к следующей функции (которая, конечно же, является частью гораздо более длинного файла, который я не стану публиковать здесь):

По сути, я предполагаю, что я ищу какую-то альтернативу этой одной строке, которая не требует библиотеки gmp. Я действительно не занимаюсь вещами, поэтому я не совсем уверен, что здесь происходит. Любые советы и/или просвещение были бы очень оценены.

Linux.yaroslavl.ru

Учебник РНР
Назад Вперёд

gmp_strval — конвертирует GMP-число в строку.

Описание

string gmp_strval (resource gmpnumber [, int base])

Конвертирует GMP-число в строковое представление с базой base . По умолчанию base равна 10. Допустимые значения для base — от 2 до 36.

gmp_strval gmp_init error (converting ip addesses)

I am getting an error with a bit of borrowed code I am using to get longitude and latitude from IP addresses. It has worked in the past — as recently as last week actually — but I’m getting an error caused by this line of code:

The problem appears to be coming from gmp_strval & gmp_init. Apparently, my shared server sometimes has the gmp library and sometimes not (I cannot image any other reason for the error as this was working before w/o any changes to the code).

This line is from the following function (which is, of course, part of a much longer file which I will not try to post here):

Essentially, I guess I am looking for some sort of alternative to that one line that does not require the gmp library. I really do not deal with stuff a lot, so I’m not exactly sure what is going on here. Any advice and/or enlightenment would be very much appreciated.

gmp_strval gmp_init ошибка (преобразование ip-адресов)

Я получаю ошибку с немного заимствованного кода, который я использую, чтобы получить долготу и широту от IP-адресов. Он работал в прошлом — так же, как и на прошлой неделе — но я получаю сообщение об ошибке, вызванное этой строкой кода:

The problem appears to be coming from gmp_strval & gmp_init. Apparently, my shared server sometimes has the gmp library and sometimes not (I cannot image any other reason for the error as this was working before w/o any changes to the code).

Эта строка относится к следующей функции (которая, конечно же, является частью гораздо более длинного файла, который я не стану публиковать здесь):

По сути, я предполагаю, что я ищу какую-то альтернативу этой одной строке, которая не требует библиотеки gmp. Я действительно не занимаюсь вещами, поэтому я не совсем уверен, что здесь происходит. Любые советы и/или просвещение были бы очень оценены.

gmp_strval

Convert GMP number to string

Description

Convert GMP number to string representation in base base . The default base is 10.

Parameters

The GMP number that will be converted to a string.

It can be either a GMP number resource , or a numeric string given that it is possible to convert the latter to a number.

The base of the returned number. The default base is 10. Allowed values for the base are from 2 to 62 and -2 to -36.

Return Values

The number, as a string .

Changelog

Version Description
5.3.2 The base was extended from 2 to 36, to 2 to 62 and -2 to -36.

Notes

To use the extended base introduced in PHP 5.3.2, then PHP must be compiled against GMP 4.2.0 or greater.

Examples

Example #1 Converting a GMP number to a string

Что такое код gmp_strval

gmp_strval — конвертирует GMP-число в строку.

Описание

string gmp_strval (resource gmpnumber [, int base])

Конвертирует GMP-число в строковое представление с базой base . По умолчанию base равна 10. Допустимые значения для base — от 2 до 36.

Пример 1. Конвертация GMP-числа в строку


Назад Оглавление Вперёд
gmp_sqrtrm Вверх gmp_sub

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Как установить библиотеку GMP Math на сервере / VPS ?

31-10-2009, 08:49. Разместил: gfxman

Сначала узнаем что этот такое.
Что такое библиотека GMP ?
Это набор функций которые позволяют работать с целыми числами произвольной точности с использованием библиотеки GNU MP в PHP

Была необходимость установить библиотеку GMP для PHP. Исследовал страницы интернет и были найдены решения как это сделать.
Не так часто это нужно но может кому-то пригодится.

Много операций можно делать через EasyApache (Apache Update) в WHM но к сожалению этого не сделать.
В WHM/CPanel не поддерживается компиляция библиотеки GMP в PHP

Прилагаю проверенный способ:

Заходим на сервер через SSH и выполняем следующее в командной строке

Сайт где можно скачать последнюю версию библиотеки GMP для PHP: http://gmplib.org/#DOWNLOAD

Далее создаем файл:

(по всей вероятности этого файла нет и вы его создадите редактором vi)
добавляем строчку

После этого пересобираем PHP

в WHM это делается просто через
EasyApache (Apache Update) он находится в разделе Software
Выбираем нужные параметры, или используем уже готовые ваши заготовки настроек. Заодно можно и обновить PHP и т.п.

или просто пересобрать PHP по умолчанию в командной строке
/scripts/easyapache

Компилируем и все готово!

Прилагаю код скрипта, для проверки
Создаете файл и откройте через браузер,
например: test.php в него вставьте код, представленный ниже

Функция вычисления факториала с использованием GMP

Факториал 1000 будет вычислен (довольно большое число) весьма быстро.

Вот что должно отобразится : 40238726007709377354370243392300.

Если вы увидите много цифирок то значит работает а если ошибка, то вероятно вы что то сделали не так.

Еще, что бы убедится что библиотека скомпелирована с PHP,
создайте файл phpinfo.php и запустить его
в него вставте следующий код:

На экране через браузер вы увидете конфигурацию вашего PHP, и в самом начале будет такая строка : Configure Command
в этом списке должно быть . ‘—with-gmp’ .

Если она есть то значить все в порядке и библиотекой GMP была скомпилирована

Если вы просто клиент какого либо хостинга и вам необходима эта библиотека, вам необходимо будет попросить установить ее у технической поддержки вашего хостинга.
Если они не знают как, можете показать мою статью :)

gmp_strval gmp_init error (converting ip addesses)

November 2020

172 раз

Я получаю сообщение об ошибке с немного заимствованного кода я использую, чтобы получить долготу и широту с IP-адресами. Он работал в прошлом — в последнее время, как на прошлой неделе на самом деле — но я получаю ошибку, вызванную этой строки кода:

Проблема, как представляется, исходя из gmp_strval & gmp_init. Видимо, мой общий сервер иногда имеет библиотеку ГМП, а иногда нет (я не могу изображение какой-либо другой причиной ошибки, как это работает, прежде чем без каких-либо изменений в коде).

Эта строка из следующей функции (которая, конечно же, часть гораздо большего файла, который я не буду пытаться размещать здесь):

По существу, я предполагаю, что я ищу какой-то альтернативы той одной линии, которая не требует библиотеки ГМП. Я действительно не имеют дело с вещами, много, так что я не совсем уверен, что здесь происходит. Любые советы и / или просветление будет очень высоко ценится.

gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval — Преобразование GMP числа в строку

Описание

Преобразует GMP число в строку в системе счисления base . По умолчанию числа преобразуются в десятеричной системе счисления.

Список параметров

GMP число для конвертации.

Может быть как числом GMP, так и строкой, при условии, что ее значение можно конвертировать в число.

Система счисления возвращаемого числа. По умолчанию — 10. Возможные значения: от 2 до 62 и от -2 до -36.

Возвращаемые значения

Число в виде строки типа string .

Список изменений

Версия Описание
5.3.2 Диапазон возможных систем счисления base расширен со значений 2 — 36, до 2 — 62 и -2 — -36.

Примечания

Для использования расширенного диапазона систем счисления введенного в PHP 5.3.2, PHP должен быть скомпилирован с библиотекой GMP версии 4.2.0 или выше.

Примеры

Пример #1 Преобразование GMP числа в строку

Коментарии

A gotcha when using the value from gmp_strval as a key in an associative array. Some numbers are 2^31 are converted to signed integer format, this is usually incorrect.

= gmp_init ( ‘2147483649’ ); // = 2^31 + 1
$b = gmp_init ( ‘3173604585’ ); // = 2^31 $c = gmp_strval ( $a );
$d = gmp_strval ( $b );

$e = array( $c => ‘c’ , $d => ‘d’ );

print ‘*** Expect ‘ . «\n» ;
print ‘Array ‘ . «\n» . ‘(‘ . «\n» . ‘ [‘ . $c . ‘] => c’ . «\n» . ‘ [‘ . $d . ‘] => d’ . «\n» . ‘)’ . «\n\n» ;
print ‘*** Actual ‘ . «\n» ;
print_r ( $e );

*** Expect
Array
(
[2147483649] => c
[3173604585] => d
)

*** Actual
Array
(
[-2147483647] => c
[3173604585] => d
)

A workaround is to format as base 16 and append ‘0x’ before using as a key.

It may be worth noting that using gmp_strval can slow your script down a lot with large numbers.

This script for example, produces factorials in succession:
= microtime ( TRUE );

$fact = gmp_init ( 1 , 10 );
for( $i = 1 ; $i 100000 ; $i ++) < // calculates 100,000 factorials
$fact = gmp_mul ( $fact , $i ); // $fact is now the result of the $ith factorial
// gmp_strval($fact, 10); // see below.
if( microtime ( TRUE )- $start > 1 ) // stop calculating after 1 second
break;
>
// print whatever result that took 1 second to complete
printf ( «\$i = %d\n\$fact = %s\n» , gmp_strval ( $fact , 10 ));

?>

My server calculates around about the 69,500th factorial on average every time. Uncommenting that gmp_strval line slows this process down dramatically, and only calculates about 5,000 factorials. This is about 14 times longer than before (this is consistent with allowing it to run for any number of seconds, not just 1).

Что такое код gmp_strval

We recommend upgrading to the latest Google Chrome or Firefox.

Join GitHub today

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

hhvm / hphp / test / zend / good / ext / gmp / tests / gmp_strval.php.skipif

> function main(): void <
if (!extension_loaded(«gmp»)) print «skip»;
>
  • © 2020 GitHub , Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Илон Маск рекомендует:  Аргументы функции main()
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL