Python脚本如何知道调用它的PHP文件的路径?

时间:2015-11-25 19:15:45

标签: php python exec traceback backtrace

我正在使用Call to a member function test_function() on a non-object foo.php执行Python脚本,我希望Python脚本知道PHP调用源自哪个目录。在此示例中,它应为:exec

/www/includes

foo.php

# File tree
/script.py
/www/index.php
/www/includes/foo.php

script.py

var_dump( exec( "/usr/bin/python /script.py" ) );

我发现#!/usr/bin/env python import os print( os.getcwd() ) 在浏览器中直接调用os.getcwd()网址时效果很好。我得到了预期的结果:foo.php

然而,当/www/includes从另一个目录中的另一个PHP文件调用时,无效,如foo.php

的index.php

/www/index.php

Python脚本打印require_once '/www/includes/foo.php'; ,因为那是/www所在的位置。

问题

无论index.php被调用的方式如何,如果/www/includes执行它,我怎么能让Python脚本返回foo.php?我尝试了一些foo.php方法而没有运气,因为我认为它只适用于跟踪错误。

1 个答案:

答案 0 :(得分:1)

您需要将工作目录更改为foo.php目录,您应该可以使用chdir:

chdir (__DIR__); # change working dir to current directory.

在foo.php中