【问题标题】:Class Normalizer not found (in PHP 5.3.8)未找到类规范器(在 PHP 5.3.8 中)
【发布时间】:2012-01-25 16:44:12
【问题描述】:

我在尝试使用 Normalizer 类,特别是 Normalizer::normalize 函数时收到此 PHP 错误:

Fatal error: Class 'Normalizer' not found.

我目前使用的是 PHP 5.3.8,所以根据PHP documentation,它应该默认激活。我唯一能想到的就是 PECL intl 扩展的问题。

我检查了php/ext/ 文件夹,php_intl.dll 在那里。我检查了php.ini文件,没有extension=php_intl.dll命令,所以我添加了。但仍然没有运气。除此之外我不知道。谁能告诉我这里到底发生了什么?

谢谢

附加信息:当我运行 phpinfo 时,没有提及 PECL 国际扩展,所以我猜它没有正确安装。

什么解决了我的问题:

http://www.tiv.net/2010/12/php-intl-extension-windows-apache.html,卸载 XAMPP 1.77(PECL intl 扩展存在某种内部错误)并安装 XAMPP 1.73。

【问题讨论】:

  • 您在运行 apache(或其他 http 服务器)吗?你重启了吗?
  • 是的,在 Xampp 中(适用于 Windows)。我重新启动它并没有改变:/
  • 您是否阅读过php.net/manual/en/install.windows.extensions.php 其他扩展存储在您机器上的位置?
  • 您是否尝试在 xampp 面板中启用 intl 扩展(我怀疑应该有一些管理面板:))?

标签: php pecl intl


【解决方案1】:

引用http://pecl.php.net/package/intl:

国际化扩展公开了 ICU 的功能 库到 PHP。

所有二进制文件都依赖于 ICU 库(4.8 版),它 必须对 PHP 可用。

只需在 php.exe 所在的文件夹中下载并解压带有 ICU 库的 zip 内容,它就可以工作了

ps:php_intl.dll 可以从同一位置下载(在描述中说“Windows 二进制文件”:)

【讨论】:

  • 感谢您的回答,太糟糕了,我现在使用的是付费主机,但我没有那种访问权限:/。无论如何都很高兴知道
【解决方案2】:

左键单击 WAMP 托盘图标,转到 PHP,转到 PHP 扩展并检查 php_intl。比重新启动服务器。

因为 WAMP(server) 使用另一个设置文件,所以一切看起来都很好。

【讨论】:

  • 谢谢,不过我使用的是 XAMPP 而不是 WAMP,所以帮助不大。
  • 明确为 XAMPP 而不是 WAMP 编写,先阅读问题然后回答
猜你喜欢
  • 1970-01-01
  • 2012-01-08
  • 2020-04-13
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
相关资源
最近更新 更多