我正在使用 php 7.1.11 我只是尝试此功能dl()
,但它显示出错误。
我在php.ini
中评论了php_fileinfo.dll
,并重新启动了Apache。我认为问题不在.dll
上,因此,问题是dl()
功能。
代码:
<?php
error_reporting(-1);
echo phpversion();
echo PHP_OS;
if(!extension_loaded('fileinfo')){
dl('php_fileinfo.dll');
}
...
错误:
7.1.11winnt致命错误:未定的错误:D: xampp htdocs php 1.php:7
call do do n d call to d to d: xampp htdocs htdocs htdocs htdocs htdocs htdocs堆栈跟踪:#0 {main}在d: xampp htdocs php 1.php上扔下,第7行7
问题是dl()
函数已从大多数SAPI中删除,并要求您使用扩展名加载指令。
当前的PHP文档对此警告。
1。文档和历史
警告 此函数从PHP 5.3.0中的大多数SAPI中删除,并从PHP 7.0.0中的PHP-FPM中删除。
这是完整的变更历史记录:
-
7.0.0
dl()
在PHP-FPM中禁用。 -
5.3.9
dl()
在php-fpm中启用,尽管不愿拒绝。 -
5.3.0
dl()
由于稳定性问题而在某些SAPI中被禁用。允许dl()
的唯一SAPI是 cli 和嵌入。
2。有解决方案吗?
真正的问题是您真的需要解决方案吗?dl()
函数毕竟是出于原因。
由您的系统来支持您的代码库,而不是使系统符合系统的代码库。
使用extension_loaded()
函数检查扩展名是否已加载,如果不引起错误/异常,而不是尝试在运行时动态加载它。
您可以使用系统的php.ini
文件扩展指令