3

我想安装 mailparser 扩展。我下载了 php_malparse.dll (把它放到 php/ext 文件夹中)。还添加:extension=php_mailparse.dll 到 php.ini

但它不起作用,并且 php_info() 也没有显示它。

在日志中我得到:

PHP 警告:PHP 启动:无法加载动态库 'E:\xampp\php\ext\php_mailparse.dll' - %1 \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf \xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd‌​\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\ xbd\xef\xbf\xbd‌​\xef\xbf\xbd\xef\xbf‌​\xbd\xef\xbf\xbd\xef‌​\xbf\xbd\xef\xbf\xbd‌​\xef\xbf\xbd Win32.\ r\n 在第 0 行的未知中

我需要帮助,我该如何解决这个问题?谢谢!

4

1 回答 1

4

很难说这里发生了什么。通常,该消息Unable to load dynamic library意味着库(在这种情况下在 Windows 上为.dll文件)格式不正确,操作系统无法将其映射到内存PHP 无法使用它。

一些可能的原因包括:

  • 扩展未针对与目标 PHP 构建相同的架构进行编译(例如 PHP 是x86-64但库是x86
  • 扩展不是使用相同的运行时版本编译的;PHP 对此非常严格(例如 PHP5 是用vc11Windows 构建的,PHP7 是用vc14, ETC 构建的。)
  • 该扩展未针对您的 PHP 构建使用的同一版本的 PHP API 或扩展 API 进行编译;在这种情况下,通常 PHP 会显示更详细的错误消息(奇怪的是您的错误消息包含一堆非打印字符......)

要仔细检查所有这些,请查看转储phpinfo()以查看您拥有的 PHP 类型。查找 PHP API 和扩展版本以及系统架构以及是否启用了线程安全。然后返回到您下载php_mailparse.dll扩展库的位置,并确保扩展与您的 PHP 构建保持一致。以下是有关此过程的一些官方说明,适用于 Windows PHP 扩展。

我在这里找到了这个模块的官方版本。有很多不同的选择可供选择。注意ts(即线程安全)vs nts(即非线程安全),x86vs x64(即架构)和vc11vs vc14(即运行时版本)。您可能需要进行试验,直到找到适合您的 PHP 构建的版本。

也可能值得查看扩展的官方安装说明。mailparse请特别注意,mbstring必须先加载模块才能使其工作。

于 2017-06-30T18:26:54.910 回答