我正在使用Call to a member function test_function() on a non-object
从foo.php
执行Python脚本,我希望Python脚本知道PHP调用源自哪个目录。在此示例中,它应为:exec
/www/includes
# File tree
/script.py
/www/index.php
/www/includes/foo.php
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
。
/www/index.php
Python脚本打印require_once '/www/includes/foo.php';
,因为那是/www
所在的位置。
无论index.php
被调用的方式如何,如果/www/includes
执行它,我怎么能让Python脚本返回foo.php
?我尝试了一些foo.php
方法而没有运气,因为我认为它只适用于跟踪错误。
答案 0 :(得分:1)
您需要将工作目录更改为foo.php目录,您应该可以使用chdir:
chdir (__DIR__); # change working dir to current directory.
在foo.php中