Включить BCMath с помощью php.ini?
Есть ли способ сделать это только с помощью php.ini?
2 ответа
Как мне установить / включить модуль PHP bcmath на CentOS 6? Я попробовал yum install php-bcmath и получил эту ошибку: Error: Package: php-mysql-5.3.3-26.el6.x86_64 (base) Requires: php-common(x86-64) = 5.3.3-26.el6 Removing: php-common-5.3.3-23.el6_4.x86_64 (@updates) php-common(x86-64) =.
Перед перекомпиляцией проверьте файл php.ini и найдите «bcmath». Вы можете найти bcmath.scale=0. Если это так, измените значение 0 на 2.
Похожие вопросы:
Как включить файл php.ini в другой файл php.ini?
Как включить расширение DOM в моем файле php.ini? Я запускаю сайт WordPress и получаю сообщение Please enable the DOM extension in your PHP configuration. Нужно ли мне редактировать файл wp-config.
Как мне установить / включить модуль PHP bcmath на CentOS 6? Я попробовал yum install php-bcmath и получил эту ошибку: Error: Package: php-mysql-5.3.3-26.el6.x86_64 (base) Requires.
Я запускаю последнюю версию php-cgi из репозиториев Arch Linux. Я включил модуль BCMath на php.ini, и он работает, когда я запускаю php, php-cgi и php в Apache. Однако, когда dev_appserver.py.
Я пытался установить Костанай форум Казахстан на моем сервере по установке Костанай форум Казахстан нужно включить imap Я попытался включить imap с помощью php.ini, удалив ; from.
Мне нужно включить библиотеку php в мой php.ini, чтобы ее можно было использовать для всех сайтов на сервере. Как я могу это сделать? В настоящее время я добавил Это к своему php.ini include_path =.
Приветствую коллег разработчиков, Я пытаюсь использовать composer для своего проекта PHP на сервере разработки, который я недавно загрузил, и по какой-то причине не могу этого сделать. Я успешно.
How to install bcmath module?
How do I install the bcmath module on a server? I tried
but it said it found nothing.
19 Answers 19
ubuntu and php without version specification
Not sure why I had to go so deep considering the yum install gave me bcmath in phpinfo()
Worked great on CentOS 6.5
yum install bcmath
All my calls to bcmath functions started working right after an apache restart
service httpd restart
Was getting call to undefined function bcmod()
you should then see something similar to /etc/php.d/bcmath.ini listed under phpinfo.
If you have installed php 7.1 then this line work on your system.
check your php version in your system on ubuntu 16.04
and then result show there..
PHP 7.1.x+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 19 2018 07:16:12) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.9-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
The following worked for me on Centos 7.4 with PHP 7.1 using remi repository.
First find out which PHP version I have:
Then search for bcmath extension in remi-php71 repository:
Now install the first matching extension:
Finally, restart php and nginx:
I found that the repo that had the package was not enabled. On OEL7,
I used the following command to find where the package was
if you want enable any extension then you have to install an extension first, extension maybe enabled but not installed so, taking example of bcmath
1.yum search php-bcmath
2.then ensure php version in which u want to install this extension
3.u will get output like after yum search command>>
yum search php-bcmath** Loaded plugins: fastestmirror, universal-hooks Loading mirror speeds from cached hostfile
7.u can install any extension from above steps.
Как решить Запрошенное расширение PHP bcmath отсутствует в вашей системе при установке библиотеки через composer в Ubuntu 16.04
Для многих библиотек-пакетов, которые можно установить с помощью composer, требуется знаменитое расширение bcmath. Благодаря компьютерам вы можете легко выполнять вычисления для огромных чисел с высокой точностью, однако в некоторых ситуациях, когда требуемое количество цифр в номере превышает доступную память компьютера, эта высокая точность может быть ниже, чем ожидалось, или не Работа. Вот почему это расширение в PHP существует, чтобы решить эту проблему. BCMath — это набор функций PHP, которые позволяют вам использовать арифметику с произвольной точностью. Этот пакет в основном будет оберткой для этих функций, чтобы их можно было использовать объектно-ориентированным способом.
На некоторых серверах Ubuntu, которые неправильно настроены, это расширение может отсутствовать, но не беспокойтесь, поскольку вы можете легко установить его через CLI, выполнив простую команду. Выполните следующие шаги, чтобы запустить расширение bcmath в вашем дистрибутиве PHP и, наконец, установить библиотеки PHP, которые полагаются на это расширение, как moontoast / математика.
1. Проверьте, какую версию PHP вы используете
В качестве первого шага вы должны знать, какую версию PHP вы используете, поскольку вы не можете просто установить любую версию расширения с любой версией PHP. Чтобы быть уверенным в используемой версии PHP, вы можете запустить эту команду из CLI:
Это сгенерирует вывод, похожий на:
Где вы можете легко определить версию PHP, которую вы используете. В нашем случае мы используем PHP 7.0.
2. Установите расширение bcmath
Теперь, когда вы знаете, какую версию PHP вы используете, вы можете просто установить соответствующую версию bcmath с помощью следующей команды:
После завершения установки вы сможете использовать расширение bcmath, и у вас больше не будет упомянутых предупреждений.
Fixed Point Math в PHP с BCMath, случаи потери точности
При работе с числами с фиксированной запятой вы должны быть очень осторожны — особенно если вы разрабатываете с PHP и MySQL. В этой статье описываются препятствия и тонкости работы с расширением PHP BCMath, обработкой выражений с фиксированной точкой MySQL и сохранением данных с фиксированной точкой от PHP до MySQL. Несмотря на возникающие барьеры, мы пытаемся выяснить, как работать с числами с фиксированной точкой, чтобы не потерять цифру.
Проблемы с BCMath
Документация BCMath гласит:
Поэтому параметры функции BCMath должны быть представлены в виде строк. Передача числовых значений в bcmath может привести к неверным результатам, такой же потере точности, как и при обработке двойного значения как строки
Дело 1
Дело 2
Причина этого в том, что BCMath преобразует свои аргументы в строки, и в некоторых случаях строковое представление числа имеет экспоненциальную запись.
Дело 3
PHP — это слабо типизированный язык, и в некоторых случаях вы не можете строго контролировать ввод — вы хотите обрабатывать как можно больше запросов.
но применение того же преобразования может нарушить «правильное» поведение в случае 1 :
Но последние две строки примера показывают нам, что предостережения с плавающей запятой нельзя избежать с помощью анализа ввода (что совершенно логично — мы не можем иметь дело с внутренним двойным представлением PHP).
BCMath окончательные рекомендации
Никогда не используйте числа с плавающей запятой в качестве аргументов операции с фиксированной запятой. Преобразование строк не помогает, потому что мы никак не можем управлять потерей точности.
При использовании операций расширения BCMath будьте осторожны с аргументами в экспоненциальном представлении. Функции BCMath не обрабатывают экспоненциальные аргументы (т. Е. ‘1e-8’) правильно, поэтому вы должны преобразовать их вручную. Будьте осторожны, не используйте sprintf или подобные методы преобразования, потому что это приводит к потере точности.
MySQL и номера с фиксированной точкой
Самое интересное в том, как MySQL обрабатывает выражения:
Обработка числового выражения зависит от вида значений, содержащихся в выражении:
Если присутствуют какие-либо приблизительные значения, выражение является приблизительным и вычисляется с использованием арифметики с плавающей точкой.
В противном случае выражение содержит только целочисленные значения. Выражение является точным и вычисляется с использованием целочисленной арифметики и имеет точность, аналогичную BIGINT (64 бита).
Если числовое выражение содержит какие-либо строки, они преобразуются в значения с плавающей запятой двойной точности, и выражение является приблизительным.
Вот короткий пример, который демонстрирует случаи дробной части:
Это может показаться довольно простым, но давайте посмотрим, как с этим бороться в PHP.
Точность математики в PHP и MySQL
Так что теперь мы должны сохранить наши значения с фиксированной точкой из PHP в MySQL. Правильный способ — использовать подготовленные операторы и заполнители в наших запросах. Затем мы делаем привязку параметров, и все в безопасности.
Если мы хотим воспользоваться преимуществами подготовленных операторов и работать с числами с фиксированной запятой, лучший способ — выполнить все математические операции в PHP и сохранить результаты в MySQL.
Вывод
Мы пришли к следующим выводам:
Мой личный любимый подход — первый: все математические операции в PHP. Я согласен с тем, что PHP и MySQL могут быть не лучшим выбором для приложений с точной математикой, но если вы выбрали этот технологический стек, полезно знать, что есть способ правильно с ним справиться.
Включить BCMath с помощью php.ini?
Есть ли способ сделать это только с помощью php.ini?
2 ответа
Как мне установить / включить модуль PHP bcmath на CentOS 6? Я попробовал yum install php-bcmath и получил эту ошибку: Error: Package: php-mysql-5.3.3-26.el6.x86_64 (base) Requires: php-common(x86-64) = 5.3.3-26.el6 Removing: php-common-5.3.3-23.el6_4.x86_64 (@updates) php-common(x86-64) =.
Перед перекомпиляцией проверьте файл php.ini и найдите «bcmath». Вы можете найти bcmath.scale=0. Если это так, измените значение 0 на 2.
Похожие вопросы:
Как включить файл php.ini в другой файл php.ini?
Как включить расширение DOM в моем файле php.ini? Я запускаю сайт WordPress и получаю сообщение Please enable the DOM extension in your PHP configuration. Нужно ли мне редактировать файл wp-config.
Как мне установить / включить модуль PHP bcmath на CentOS 6? Я попробовал yum install php-bcmath и получил эту ошибку: Error: Package: php-mysql-5.3.3-26.el6.x86_64 (base) Requires.
Я запускаю последнюю версию php-cgi из репозиториев Arch Linux. Я включил модуль BCMath на php.ini, и он работает, когда я запускаю php, php-cgi и php в Apache. Однако, когда dev_appserver.py.
Я пытался установить Костанай форум Казахстан на моем сервере по установке Костанай форум Казахстан нужно включить imap Я попытался включить imap с помощью php.ini, удалив ; from.
Мне нужно включить библиотеку php в мой php.ini, чтобы ее можно было использовать для всех сайтов на сервере. Как я могу это сделать? В настоящее время я добавил Это к своему php.ini include_path =.
Приветствую коллег разработчиков, Я пытаюсь использовать composer для своего проекта PHP на сервере разработки, который я недавно загрузил, и по какой-то причине не могу этого сделать. Я успешно.





