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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 17
leo

试试getcwd()

8年前 评论

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

8年前 评论
leo

@ZhangYuan $_ENV['_']

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

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

8年前 评论
leo

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

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

@leo

8年前 评论
leo

再来一发 PHP_BINARY 这是一个常量

8年前 评论

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

8年前 评论

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

8年前 评论
leo
8年前 评论

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

8年前 评论

try{

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

} catch ( \Exception $e) {

    $arr = $e->getTrace();

    $file = array_pop($arr);

    dd($file['file']);

}

8年前 评论

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

8年前 评论

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