PHP 如何获取自身的启动文件?跪求!!!急!!!!!!!!!!!!!!!!

就比如我的php执行文件是/app/php/bin/php
而我的php文件是/home/test/test.php
如何通过/home/test/test.php来获取php自身执行文件的目录?
已证实php.ini和phpinfo()和系统环境变量均没有设置php的自身的启动文件位置。
跪求,急啊

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 17
leo

试试getcwd()

6年前 评论

看来你不明白我的意思,我不是要获取这个PHP文件的相对目录,我是要获取PHP的二进制文件的路径。就比如你php的环境变量指向的那个路径,但我这个环境变量没有设置

6年前 评论
leo

@ZhangYuan $_ENV['_']

6年前 评论
$> php -r "var_dump($_ENV['_']);"
array(1) {
  [0]=>
  string(1) "_"
}
$>whereis php
/app/php/bin/php

还是不行,依旧没有输出php文件的位置,我想要的是/app/php/bin/php,而且不像我这个环境变量还经过设置了

6年前 评论
leo

php -r "var_dump(getenv('_'));" 这回应该可以了

6年前 评论
$> php -r "var_dump(getenv('_'));"
bool(false)

@leo

6年前 评论
leo

再来一发 PHP_BINARY 这是一个常量

6年前 评论

@leo
谢谢,这个确实可以?
麻烦回答了

6年前 评论

@leo
但是线上环境显示却是fpm
/app/php5/sbin/php-fpm
不和php一致

6年前 评论
leo
6年前 评论

想到一个蠢的方法,手动抛出一个异常,然后try,catch下,然后就可以通过异常getTrace()获取到执行的文件。

6年前 评论

try{

    throw new \Exception("Error Processing Request", 1);

} catch ( \Exception $e) {

    $arr = $e->getTrace();

    $file = array_pop($arr);

    dd($file['file']);

}

6年前 评论

@ab0029
大兄弟,不是php文件的路径,是php二进制文件的路径,就像是win的php.exe

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!