我想从 PHP CLI 中运行 PHP CLI 程序。在某些将运行此程序的计算机上,同时安装了 PHP 4 和 PHP 5。如果我运行外部程序
php5 outer.php
我希望内部脚本使用相同的 PHP 版本运行。在 Perl 中,我会使用$^X
获取 Perl 可执行文件。 PHP 中似乎没有这样的变量。
现在,我正在使用$_SERVER['_']
,因为 Bash(和 zsh)设置了环境变量$_
到最后运行的程序。但是,我不想依赖特定于 shell 的习惯用法。
UPDATE:版本差异只是问题之一。如果 PHP 不在PATH https://en.wikipedia.org/wiki/PATH_(variable)例如,或者不是 PATH 中找到的第一个版本,则查找版本信息的建议将无济于事。
此外,csh
并且变体似乎没有设置$_
其进程的环境变量,因此该解决方法在那里不适用。
更新2:我正在使用$_SERVER['_']
,直到我发现它没有做正确的事情xargs
(这是有道理的...zsh
将其设置为它运行的命令,即xargs
, not php5
, and xargs
不改变变量)。我又开始使用:
$version = explode('.', phpversion());
$phpcli = "php{$version[0]}";
值得注意的是,现在在 PHP 5.4+ 中您可以使用预定义常量PHP_BINARY http://php.net/manual/en/reserved.constants.php:
PHP_BINARY
指定脚本执行期间的 PHP 二进制路径。自 PHP 5.4 起可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)