我正在使用 PHP 7.1.11 我只是尝试使用此函数dl()
,但它显示错误。
我在php_fileinfo.dll
中评论了php.ini
并重新启动了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中调用未定义的函数dl():7
堆栈跟踪:#7 {main}在第7行的D:\ xampp \ htdocs \ php \ 1.php中抛出
答案 0 :(得分:2)
问题是前一段时间大多数SAPI都删除了dl()
功能,而是要求您使用Extension Loading Directives。
目前PHP Documentation对此发出警告。
<强> 1。文件和历史
警告强> 此功能已从PHP 5.3.0中的大多数SAPI中删除,并已从PHP 7.0.0中的PHP-FPM中删除。
这是完整的更改历史记录:
dl()
。dl()
在PHP-FPM中启用,尽管不鼓励。dl()
现已在某些SAPI中停用。允许dl()
的唯一SAPI是 CLI 和嵌入。<强> 2。有解决方案吗?
真正的问题是你真的需要一个解决方案吗?毕竟,dl()
函数已被弃用。
由您的系统来支持您的代码库,而不是您的代码库以使系统兼容。
使用extension_loaded()
函数检查扩展是否已加载,如果没有引发错误/异常,而不是尝试在运行时动态加载它。
您可以使用系统的php.ini
文件扩展指令