在PHP中获取文件的“包含路径”

时间:2009-11-26 07:27:53

标签: php

我可以使用__FILE__魔术PHP常量获取当前正在执行的文件,但这会给我/var/www/vhosts/.../httpdocs/stacktrace.php。我试图获取文件的名称,以便将其传递给隐藏的表单字段,然后在提交表单后再次运行该脚本。

我试图获取文件名的脚本可以被命名为任何内容,它被设计为被复制并重命名为站点的任何部分。

脚本将始终包含在内,它永远不会是'执行过的脚本。

我需要能够找到文件的路径,因为它将在include指令中使用(即相对于包含路径)。

我曾希望使用ini_get('include_path')可以帮助我(如果它是/var/www/vhosts/.../httpdocs/那么我可以从脚本的文件路径中删除那部分并且它会起作用),但这只是给了我{{ 1}}。我甚至都不知道这意味着什么。

任何正确方向的推动都会有助于吨。

3 个答案:

答案 0 :(得分:1)

您可以使用以下某个值执行所需操作:

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

第一个返回docroot,第二个返回'''执行脚本的路径。然后,您可以使用此信息获取当前文件的相对路径。

答案 1 :(得分:1)

不确定我是否完全理解你想要的东西,但是如何:

 $root = $_SERVER['DOCUMENT_ROOT'];
 $pathWithLeadingSlash =  substr(__FILE__, strlen($root)); 
 // or
 $pathWithoutLeadingSlash = substr(__FILE__, strlen($root) + 1);

答案 2 :(得分:0)

也许您正在寻找basename()