Как скрипт Python может узнать путь к файлу PHP, вызывающему его?

Я выполняю скрипт Python из foo.php с помощью exec и я хочу, чтобы скрипт Python знал, из какого каталога происходит вызов PHP. В этом примере это должно быть: /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 URL вызывается прямо в браузере. Я получаю желаемый результат: /www/includes

Тем не менее, это не работает когда foo.php вызывается из другого PHP-файла в другом каталоге, например /www/index.php,

require_once '/www/includes/foo.php';

Сценарий Python печатает /www поскольку это где index.php жизни.

Как я могу получить скрипт Python для возврата /www/includes когда он выполняется foo.php независимо от того, как foo.php называется? Я попробовал некоторые traceback методы без удачи, так как я думаю, что это относится только к ошибкам отслеживания.

0

Решение

Вам нужно изменить ваш рабочий каталог на каталог foo.php, что вы должны уметь делать с chdir:

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

В foo.php

1

Другие решения

Других решений пока нет …