【问题标题】:Get the current directory name via php script in another directory在另一个目录中通过 php 脚本获取当前目录名
【发布时间】:2013-09-12 16:49:41
【问题描述】:

我正在通过包含在 .htaccess 文件中的 header.php 文件来设置 apache 索引的样式。我已经明白了,但我需要从 URL 中检索当前页面标题。所有 php 引用都指向我的解决方案,这些解决方案可用于获取“当前页面”,即包含的 php 文件本身,而不是它的索引目录。

使用这个可以,但是会调出 header.php:

$current_folder = basename(dirname(__FILE__));

关于如何实现这一点的想法?

编辑:文件夹结构是这样的,如果它有助于更​​有意义的话:

/
    /includes/header.php
    /dir/directory_that_I_want_the_name_of/

.htaccess 为每个目录索引拉入 header.php,所以我需要知道如何获取当前目录名称,而不是 header.php 所在的位置,它与 /includes/ 或 header.php 一起返回我发现的例子。我需要获取 directory_that_I_want_the_name_of。

.htaccess:

Options +Indexes
IndexOptions FancyIndexing
IndexOptions FoldersFirst IgnoreCase XHTML NameWidth=*
IndexOptions SuppressHTMLPreamble SuppressRules HTMLTable
IndexOptions IconHeight=16 IconWidth=16
IndexOptions SuppressDescription

HeaderName includes/header.php
ReadmeName includes/footer.html

【问题讨论】:

  • 我很困惑,你想获取当前页面的路径吗?
  • 不确定我是否完全理解您的问题,但您是否尝试过__DIR__
  • 你能发布你的.htaccess代码吗?
  • 已发布 .htaccess 并进行了一些澄清。 @anubhava
  • 谢谢,现在告诉我你的完整 URL 是什么,你想从 header.php 内部获取 directory_that_I_want_the_name_of 吗?

标签: php apache .htaccess


【解决方案1】:

我刚刚重新创建了所有这些设置,并且能够使用以下方法获取基本目录名称:

echo basename($_SERVER["REQUEST_URI"]);

/includes/header.php

确保您的 .htaccess 代码如下所示:

Options +Indexes
IndexOptions FancyIndexing
IndexOptions FoldersFirst IgnoreCase XHTML NameWidth=*
IndexOptions SuppressHTMLPreamble SuppressRules HTMLTable
IndexOptions IconHeight=16 IconWidth=16
IndexOptions SuppressDescription

AddType text/html .php
Addhandler application/x-httpd-php .php

HeaderName /includes/header.php
ReadmeName /includes/footer.html

【讨论】:

  • 它很接近,但它会拉入目录,以及它上面的任何目录。假设您在 domain.com/dir/dir2 中,它将打印 /dir/dir2。我需要它来打印“Dir2”。
  • 哈。对于一个简单的修复,这是很多解释。谢谢!
  • 不客气,我今天学到了一些新技巧。为您的问题 +1。
【解决方案2】:

我不是 100% 确定您的问题,但听起来您正在寻找您当前所在页面的 URL/目录,而不是标题的目录?

怎么样:

$_SERVER['PHP_SELF'];
$_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'];
$_SERVER['SCRIPT_FILENAME'];
$_SERVER['DOCUMENT_ROOT'];

这些都提供了有关服务器根据收到的 HTTP 请求打开的当前文件的信息。

【讨论】:

  • 是的,我正在寻找当前目录的目录名称,而不是生成标题的 php 页面所在的位置。也就是说,您的所有示例都会根据我试图摆脱的 header.php 文件生成路径。
最近更新 更多