我想询问是否可以从命令行输出当前的PHP扩展API版本,即:
例如我使用PHP 5.6.2(API 20131226)并且我还安装了PHP 5.5.18(API 20121212),我可以使用正确的 php 命令在两个版本之间切换,是有一种方法可以从终端看到我正在使用哪个API用于当前执行的php版PHP?
检查了man php
,但未找到与此需求相关的任何内容。
另外php -v
或php --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
5.5.18 php CLI命令也是如此。
所以,实际上,有没有办法实现这个目标?
编辑:找到答案,查看下面的帖子,或@RichardBernards对此帖的评论。
答案 0 :(得分:1)
仔细查看php -i
的输出。在加载的配置文件列表之后,它显示以下信息:
PHP API => 20121113
PHP Extension => 20121212
Zend Extension => 220121212
Zend Extension Build => API220121212,NTS
PHP Extension Build => API20121212,NTS
你可以提取你需要的东西:
php -i | grep 'PHP API'
将产生:
PHP API => 20121113
如果您只需要提取数字(将其与其他数字进行比较或在脚本中使用它等),您可以将结果进一步传递到cut
或sed
以删除额外数字字符:
php -i | grep 'PHP API' | cut -f2 -d'>'
或更好
php -i | grep 'PHP API' | sed -e 's/PHP API => //'
cut
的那个将生成前面带空格字符的数字,sed
的数字只生成数字,不会填充。
答案 1 :(得分:0)
也许这会有所帮助?
php -i | grep version
答案 2 :(得分:0)
这提供了扩展目录,最后一部分是API版本:
php-config --extension-dir
它也可以用于特定版本的PHP的select数据,例如7.2:
php-config7.2 --extension-dir
通过将API版本传递给基本名称来提取它:
basename $(php-config7.2 --extension-dir)