我正在编写一个将在多个服务器上使用的PHP脚本。所以它可以是以下任何一个:
/home/14535/domains/something.com/html/miller/test/index.php
/home/12345/domains/something.com/html/jones/test/dir4/index.php
/home/11112/domains/something.com/html/smith/test/test2/test3/index.html
在任何上述情况下需要返回完整路径减去index.php或index.html
如何可靠返回当前目录的完整服务器路径减去实际的脚本名称? (会有一些图像上传等,这就是我需要这条路径的原因。)
谢谢, 克里斯
答案 0 :(得分:2)
来自php手册的例子
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>
答案 1 :(得分:0)
__FILE__
返回当前正在运行的完整路径和脚本。要获取目录名,请通过dirname()
运行它。如果您有符号链接,则还需要通过realpath()
realpath(dirname(__FILE__));
这可能就是你要找的东西。例如,这会在我的服务器上返回正确的路径
root@upstairslinux:~# php example.php
/root
root@upstairslinux:~#
答案 2 :(得分:0)
您可以使用以下内容:
$yourpath = dirname(__FILE__);
答案 3 :(得分:0)
如果您使用的是PHP 5.3+,则应使用魔术常量:
__DIR__
如果您的版本低于此版本,则应使用:
dirname(__FILE__);
如果您的版本低于4.0.2,请升级您的PHP版本;)
有关详细信息,请参阅http://php.net/manual/en/language.constants.predefined.php。