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
Другие вопросы по тегам