получение «пути включения» к файлу в PHP - PullRequest
0 голосов
/ 26 ноября 2009

Я могу получить исполняемый файл с магической PHP-константой __FILE__, но это дает мне /var/www/vhosts/.../httpdocs/stacktrace.php. Я пытаюсь получить имя файла, чтобы передать его в скрытое поле формы, а затем снова запустить этот сценарий после отправки формы.

Сценарий, имя файла которого я пытаюсь получить, может быть назван как угодно, он предназначен для копирования и переименования в любой части сайта.

Сценарий всегда будет включен, он никогда не будет «исполняемым» сценарием.

Мне нужно найти путь к файлу, так как он будет использоваться в директиве включения (то есть относительно пути включения).

Я надеялся, что использование ini_get('include_path') поможет мне (если это было /var/www/vhosts/.../httpdocs/, тогда я мог бы просто вырезать эту часть из пути к файлу скрипта, и это сработало бы), но это просто дало мне .:.:.:. Я даже не знаю, что это значит.

Любой толчок в правильном направлении поможет тоннам.

Ответы [ 3 ]

1 голос
/ 26 ноября 2009

Вы можете использовать одно из следующих значений, чтобы делать то, что вы хотите:

$_SERVER['DOCUMENT_ROOT']
$_SERVER['SCRIPT_FILENAME']

Первый возвращает документальный корень, а второй возвращает путь к «исполняемому» сценарию. Затем вы можете использовать эту информацию, чтобы получить относительный путь к текущему файлу.

1 голос
/ 26 ноября 2009

Не уверен, что я точно понял, что вы хотите, но как насчет:

 $root = $_SERVER['DOCUMENT_ROOT'];
 $pathWithLeadingSlash =  substr(__FILE__, strlen($root)); 
 // or
 $pathWithoutLeadingSlash = substr(__FILE__, strlen($root) + 1);
0 голосов
/ 26 ноября 2009

Возможно, вы ищете basename()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...