Класс нормализатора не найден (в PHP 5.3.8) - PullRequest
3 голосов
/ 22 декабря 2011

Я получаю эту ошибку PHP при попытке использовать класс Normalizer, в частности функцию Normalizer::normalize:

Fatal error: Class 'Normalizer' not found.

В настоящее время я использую PHP 5.3.8, поэтому, согласно документации PHP , он должен быть активирован по умолчанию. Единственное, о чем я могу думать, это проблема с расширением PECL intl.

Я проверил в папке php/ext/ и php_intl.dll там. Я проверил файл php.ini, и команды extension=php_intl.dll не было, поэтому я добавил ее. Но все равно не повезло. Помимо этого я понятия не имею. Кто-нибудь может сказать мне, что, черт возьми, здесь происходит?

Спасибо

Дополнительная информация: Когда я запускаю phpinfo, нет упоминаний о расширении PECL intl, поэтому я предполагаю, что оно неправильно установлено.

Что решило мою проблему:

http://www.tiv.net/2010/12/php-intl-extension-windows-apache.html, удаление XAMPP 1.77 (в котором есть какая-то внутренняя ошибка с расширением PECL intl) и установка XAMPP 1.73.

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Цитата от http://pecl.php.net/package/intl:

Расширение Интернационализация предоставляет функциональность ICU библиотека в PHP.

Все двоичные файлы зависят от библиотек ICU (версия 4.8), которые должен быть доступен для PHP.

просто скачайте и распакуйте содержимое архива с библиотеками ICU в папке, где находится php.exe, и оно будет работать

ps: php_intl.dll можно скачать из того же места (в описании, где написано "Windows binaries":)

1 голос
/ 22 декабря 2011

Щелкните левой кнопкой мыши на значке WAMP в трее, перейдите в PHP, перейдите к расширениям PHP и проверьте php_intl. Чем перезагрузить сервер.

Поскольку WAMP (сервер) использует другой файл настроек, все выглядит нормально, а это не так.

...