【问题标题】:PHP : Get current directory namePHP:获取当前目录名称
【发布时间】:2016-02-18 13:39:17
【问题描述】:

我有一个返回当前文件夹名称的函数:

function the_page_title()
{
    $page_name = dirname(__FILE__);
    $each_page_name = explode('/', $page_name);
    $len_page_dir = count($each_page_name);
    $c_i_p_n = 0;
    while($len_page_dir != $c_i_p_n)
    {
        $c_i_p_n++;
    }
    echo $each_page_name[$c_i_p_n];
}

但是,这会返回 $page_name 保存的内容,而不是我当前所在的文件夹。

当我print_r($each_page_name) 我得到这个:

Array ( [0] => [1] => home [2] => kyleport [3] => public_html [4] => inc ) /home/kyleport/public_html/inc

谁能指出我正确的方向,因为我不知道哪里出了问题:(谢谢!

在这种情况下,我希望它显示inc

【问题讨论】:

  • 最好打开警告。我怀疑你会看到更多线索。

标签: php directory


【解决方案1】:

你只需要数组的最后一个元素:

$page_name = dirname(__FILE__);
$each_page_name = explode('/', $page_name);
echo end($each_page_name);

【讨论】:

    【解决方案2】:

    你可以使用;

    echo getcwd();
    

    成功时返回当前工作目录,失败时返回FALSE

    【讨论】:

      【解决方案3】:

      如前所述,您应该使用getcwd(),否则,您的函数将始终返回它所在的文件夹,而不是当前脚本目录。

      你可以用basename代替爆炸;

      function the_page_title()
      {
          $page_name = getcwd(); // current script folder
          return basename($page_name);
      }
      
      <title><?php echo the_page_title(); ?></title>
      

      【讨论】:

        【解决方案4】:

        您应该能够使用预定义的常量获取当前目录

        __DIR__
        

        相当于

        dirname(__FILE__)
        

        所以你应该使用

        $each_page_name = explode('/', __DIR__);
        $dir = end($each_page_name);
        echo $dir;
        

        【讨论】:

          【解决方案5】:

          这一行代码为我完成了它。

          echo basename(getcwd());

          我刚刚得到了我要查找的文件夹的名称。

          【讨论】:

            【解决方案6】:

            我修复了我的代码:

            function the_page_title()
            {
                $page_name = getcwd(); // getcwd() gets the directory of the file you call the function from
                $each_page_name = explode('/', $page_name);
                $len_page_dir = count($each_page_name) -1;
                return $each_page_name[$len_page_dir];
            }
            

            使用:

            <title><?php echo the_page_title(); ?></title>
            

            【讨论】:

            • 不要在新答案中显示您接受的答案,而应使用该答案旁边的勾号。
            • 直到明天我才能接受我的答案,我通常会... @worldofjr
            【解决方案7】:

            只是将我的建议添加到此列表中。 如果您只是想获取当前文件夹名称。您可以将__DIR__basename() 结合使用

            <?php $current_directory = basename(__DIR__); ?>
            

            结构和返回内容的示例,如果将上述内容添加到file.php中:

            ../directory-top/directory-sub/file.php 输出 > directory-sub

            【讨论】:

              猜你喜欢
              • 2012-04-17
              • 2013-01-29
              • 2019-05-23
              • 1970-01-01
              • 1970-01-01
              • 2020-07-16
              • 2017-09-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多