【问题标题】:PHP Fatal error: Uncaught Error: Call to undefined function idn_to_ascii() on PHP 7.2.13PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()
【发布时间】:2019-06-16 06:42:08
【问题描述】:

我正在尝试在 PHP 7.2.13 版上使用 idn_to_ascii(),但我收到了:

Uncaught Error: Call to undefined function idn_to_ascii()

我没有安装PECL intl扩展,但是根据top user contributed note on the documentation,我不需要它:

"...if you have >=5.4 you will not require the PECL extensions. "

用户注释错了吗?如果不是,那我做错了什么?

【问题讨论】:

  • 参见php.net/manual/en/intl.installation.php,它是捆绑的,但必须在安装时明确启用
  • 您可能必须安装 php7-intl。该数字可能会根据您的系统和可用的软件包而有所不同。
  • @deceze 谢谢 - 所以用户注释是错误的?
  • 不,这是正确的,您不需要 PECL 扩展。这并不意味着它总是自动可用。
  • @deceze 好的,谢谢。我知道我需要捆绑的 intl 扩展(因此不是 PECL 扩展,而是一个扩展)。但是我认为应该在某个地方明确表示我错了吗?确切的信息在哪里告诉我我需要启用 intl 扩展?

标签: php php-7 php-7.2


【解决方案1】:

它依赖于 PECL idn 模块和 libidn 库。无需从 PECL 安装 php-intl - 正如 php7.0-intl 提供的那样。运行 php -m 以查看已加载的模块。

在 RHEL 上可以安装所有这些:

sudo dnf install php72-php-intl.x86_64 libidn2.x86_64 
sudo pecl install idn

【讨论】:

    【解决方案2】:

    如果您使用的是 Ubuntu,则可以运行以下命令来安装 intl 模块,具体取决于您的 PHP 版本-

    sudo apt-get install php7.0-intl
    

    【讨论】:

    • 我同意,但这可能只是答案的 1/3; PHP 7.2 很快就无关紧要了。
    【解决方案3】:

    您可能需要激活“intl”php 模块。

    您可以通过 cPanel 选择 PHP 版本配置,方法是检查“intl”模块并保存。

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 2017-10-07
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2017-01-21
      • 2019-05-22
      相关资源
      最近更新 更多