首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP扩展版本不一致;更可靠的方法?

PHP扩展版本不一致;更可靠的方法?
EN

Stack Overflow用户
提问于 2011-10-31 03:01:36
回答 1查看 391关注 0票数 3

运行了以下命令:

代码语言:javascript
复制
foreach(get_loaded_extensions() as $name){
    $extensions[strtolower($name)] = phpversion($name);
}
var_dump($extensions);

我注意到一些加载的扩展没有显示版本,而是有false,例如:

代码语言:javascript
复制
'pcre' => boolean false

但是,当我打开phpinfo()时,它显示了一个版本号:

为什么phpversion()函数不获取正确的结果?在这种情况下,我知道我可以简单地提取PCRE_VERSION,但是对于一些扩展(但不是所有扩展),需要这样做是愚蠢的;gd也显示为假的。

编辑:Fix;

代码语言:javascript
复制
foreach(get_loaded_extensions() as $name){
    $extensions[strtolower($name)] = phpversion($name);
}
$extensions = array_replace($extensions, array(
    'iconv' => ICONV_VERSION,
    'pcre' => PCRE_VERSION,
    'libxml' => LIBXML_DOTTED_VERSION,
    'gd' => GD_VERSION,
    // others i may be missing, will get to it
));

编辑:这是完整的转储和phpinfo()输出,仅供咯咯笑:

代码语言:javascript
复制
array
  'core' => string '5.3.8' (length=5)
  'bcmath' => boolean false
  'calendar' => boolean false
  'com_dotnet' => string '0.1' (length=3)
  'ctype' => boolean false
  'date' => string '5.3.8' (length=5)
  'ereg' => boolean false
  'filter' => string '0.11.0' (length=6)
  'ftp' => boolean false
  'hash' => string '1.0' (length=3)
  'iconv' => boolean false
  'json' => string '1.2.1' (length=5)
  'mcrypt' => boolean false
  'spl' => string '0.2' (length=3)
  'odbc' => string '1.0' (length=3)
  'pcre' => boolean false
  'reflection' => string '$Revision: 313665 $' (length=19)
  'session' => boolean false
  'standard' => string '5.3.8' (length=5)
  'mysqlnd' => string 'mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $' (length=50)
  'tokenizer' => string '0.1' (length=3)
  'zip' => string '1.9.1' (length=5)
  'zlib' => string '1.1' (length=3)
  'libxml' => boolean false
  'dom' => string '20031129' (length=8)
  'pdo' => string '1.0.4dev' (length=8)
  'bz2' => boolean false
  'simplexml' => string '0.1' (length=3)
  'wddx' => boolean false
  'xml' => boolean false
  'xmlreader' => string '0.1' (length=3)
  'xmlwriter' => string '0.1' (length=3)
  'apache2handler' => boolean false
  'phar' => string '2.0.1' (length=5)
  'mbstring' => boolean false
  'exif' => string '1.4 $Id: exif.c 314376 2011-08-06 14:47:44Z felipe $' (length=52)
  'gd' => boolean false
  'gettext' => boolean false
  'imap' => boolean false
  'mysql' => string '1.0' (length=3)
  'mysqli' => string '0.1' (length=3)
  'pdo_mysql' => string '1.0.2' (length=5)
  'pdo_odbc' => string '1.0.1' (length=5)
  'pdo_sqlite' => string '1.0.1' (length=5)
  'soap' => boolean false
  'sockets' => boolean false
  'sqlite' => string '2.0-dev' (length=7)
  'sqlite3' => string '0.7-dev' (length=7)
  'tidy' => string '2.0' (length=3)
  'xmlrpc' => string '0.51' (length=4)
  'mhash' => boolean false
  'xdebug' => string '2.1.1' (length=5)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-31 03:50:55

phpversion()返回该扩展的版本,如果没有关联的版本信息或未启用扩展,则返回FALSE。

您在phpinfo()中看到的不是扩展的版本信息,而是库的c客户机版本。prce扩展本身没有版本信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7949615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档