在PHP中获取服务器路径减去文件名

时间:2013-03-08 16:22:06

标签: php

我正在编写一个将在多个服务器上使用的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

如何可靠返回当前目录的完整服务器路径减去实际的脚本名称? (会有一些图像上传等,这就是我需要这条路径的原因。)

谢谢, 克里斯

4 个答案:

答案 0 :(得分:2)

使用pathinfo()

来自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