在php中检索扩展版本

37

在php中是否可以获取扩展版本?

get_loaded_extensions只返回已加载的扩展名,但不包括版本号 :(


1
只有当扩展程序提供了查询其版本的方法时,才能进行查询。 - Jon
3
所有的扩展都提供了一种查询它们版本的方式:$version = phpversion("extensionName"); - EM-Creations
什么是扩展?是指Apache、PHP或浏览器的扩展? - David Spector
3个回答

55
我相信这就是您需要的内容:

$version = phpversion("extensionName");

更多信息


3
请注意,这不适用于 curlmcrypt(两者都返回 false),似乎已经存在很长时间:https://bugs.php.net/bug.php?id=40582,没有找到答案。 - samluthebrave
也不适用于PCRE(请参见上面的评论链接),但您可以检查常量“PCRE_VERSION”以获取版本信息。 - webaware
OpenSSL是一个有趣的案例,既不使用以下方法也不使用反射方法返回任何版本信息。但是OpenSSL实例化了常量OPENSSL_VERSION_TEXT和OPENSSL_VERSION_NUMBER。显然,没有标准化的方式从扩展中获取版本信息。 - Will Fastie

46

在命令行中,extension是扩展名。

php --re extension | head -1

如果不确定扩展名,请使用php -m列出所有扩展。


如果您尝试检测与您的PHP版本不兼容的extension.dll版本,则此方法将无法正常工作。 - Radon8472

1

提供一些解释 - Amy
2
这将返回与phpversion($extension)相同的版本信息。我检查了58个扩展,其中30个返回了版本信息。 - Will Fastie
1
在PHP 7.1-7.3(更高版本?)中,phpversion(“extension name”)和ReflectionExtension都返回PHP版本(而不是扩展版本)。我猜这就像包装器版本一样,在发布期间会自动升级。并不是很有用。它确实检查扩展是否存在(如果不存在,则返回null)。 - Henk Poley
更正,它返回false。 - Henk Poley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接