PHP 5.3 не может найти normalizer_normalize()
Я пытаюсь использовать функцию normalizer_normalize(), представленную в PHP 5.3 (говорит документ), однако я не могу ее использовать:
$ php -r 'echo normalizer_normalize("tést");'
PHP Fatal error: Call to undefined function normalizer_normalize()
in Command line code on line 1
Я проверил свою версию PHP, но это 5.3:
$ php --version
PHP 5.3.6 (cli) (built: Sep 12 2011 18:02:42)
Я не понимаю, почему PHP не может его найти?
2 ответа
Нормализатор является частью расширения intl. Хотя он построен по умолчанию, это не обязательно означает, что в используемой вами версии PHP он установлен или включен по умолчанию.
Если вы получаете версию PHP из вашей операционной системы, проверьте, есть ли у менеджера пакетов пакет с именем php-intl
, Если нет, проверьте php-pecl-intl
, Если вы используете RHEL/CentOS/Scientific Linux 5.x, также ищите php53-intl
,
Я хотел дать современный, актуальный ответ, поскольку с 2012 года все немного изменилось. Используя Ubuntu 20.04 и PHP8.1, я смог заставить это работать, просто...
sudo apt-get install php8.0-intl
Не забудьте после этого выполнить полный перезапуск apache (любой из них должен это сделать)...
systemctl restart apache2
/etc/init.d/apache2 restart
Кроме того, при этом автоматически устанавливается обновленная 8.1-версия...
root@ dpkg --list | grep 'intl'
ii php8.0-intl 1:8.0.21-2+ubuntu20.04.1+deb.sury.org+1 amd64 Internationalisation module for PHP
ii php8.1-intl 8.1.8-1+ubuntu20.04.1+deb.sury.org+1 amd64 Internationalisation module for PHP