2

我有一个我正在编写的 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

4 回答 4

3

使用路径信息()

来自 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
 ?>
于 2013-03-08T16:25:27.237 回答
0

__FILE__返回当前运行的完整路径和脚本。要获取目录名称,请通过dirname(). 如果你有一个符号链接,你还需要通过它realpath()

realpath(dirname(__FILE__));

这可能是您正在寻找的。例如,这会在我的服务器上返回正确的路径

root@upstairslinux:~# php example.php
/root

root@upstairslinux:~#
于 2013-03-08T16:25:11.977 回答
0

您可以使用以下内容:

$yourpath = dirname(__FILE__);
于 2013-03-08T16:25:22.487 回答
0

如果您使用的是 PHP 5.3+,则应使用魔术常量:

__DIR__

如果您的版本低于此,您应该使用:

dirname(__FILE__);

如果您的版本低于 4.0.2,请升级您的 PHP 版本;)

有关详细信息,请参阅http://php.net/manual/en/language.constants.predefined.php

于 2013-03-08T16:30:22.643 回答