PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()
Posted
技术标签:
【中文标题】PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()【英文标题】:PHP Fatal error: Uncaught Error: Call to undefined function idn_to_ascii() on PHP 7.2.13 【发布时间】: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 扩展? 【参考方案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”模块并保存。
【讨论】:
以上是关于PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()的主要内容,如果未能解决你的问题,请参考以下文章
如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误?
为啥我收到 PHP 致命错误:未捕获的错误:找不到类“MyClass”? [复制]
PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()
如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误