是否可以从命令行找出当前的 PHP 扩展 API?

ton*_*nix 1 php version php-extension

我想问一下是否可以从命令行输出当前的PHP扩展API版本,即:

例如,我使用 PHP 5.6.2 (API 20131226) 并且我还安装了 PHP 5.5.18 (API 20121212),我可以使用正确的php命令在两个版本之间切换,有没有办法查看我使用的是哪个 API对于从终端当前执行的 PHP 版本的 PHP??

检查man php但没有发现任何与此需求相关的内容。也php -vphp --version没有向我展示 API 版本:

$ php -v # or php --version
PHP 5.6.2 (cli) (built: Oct 20 2014 16:21:27) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
Run Code Online (Sandbox Code Playgroud)

5.5.18 php CLI 命令也是如此。

那么,实际上,有没有办法做到这一点?

编辑:找到答案,查看下面的帖子,或@RichardBernards 对这篇文章的评论。

axi*_*iac 5

仔细看看 的输出php -i。在加载的配置文件列表之后,它显示了以下信息:

PHP API => 20121113
PHP Extension => 20121212
Zend Extension => 220121212
Zend Extension Build => API220121212,NTS
PHP Extension Build => API20121212,NTS
Run Code Online (Sandbox Code Playgroud)

您可以像这样提取您需要的内容:

php -i | grep 'PHP API'
Run Code Online (Sandbox Code Playgroud)

将产生:

PHP API => 20121113
Run Code Online (Sandbox Code Playgroud)

如果您只需要提取数字(将它与另一个数字进行比较或在脚本中使用它等),您可以将结果进一步传送到cutsed删除多余的字符:

php -i | grep 'PHP API' | cut -f2 -d'>'
Run Code Online (Sandbox Code Playgroud)

或更好

php -i | grep 'PHP API' | sed -e 's/PHP API => //'
Run Code Online (Sandbox Code Playgroud)

一个 withcut将产生前面带有空格字符sed的数字,一个 with将只产生数字,没有填充。