如何在没有路径的情况下抓取第二个文件夹的名称

时间:2015-07-24 01:49:37

标签: php

最后一个问题被标记为重复,所以我重新开放,因为$_SERVER['REQUEST_URI']:不是我正在寻找的,因为它显示了整个路径。

我只需要在没有路径的情况下单独显示第二个文件夹的名称,没有正斜杠和没有页面名称

以下是网址的结构: http://example.com/sub/ THISFOLDER /page.php

域名将会发生变化,因此我正在寻找适用于任何域名的解决方案,只要它定位到第二个文件夹。

我想做的是这样的事情:

if THISFOLDER is named folder1 then { include("header2.php"); }

3 个答案:

答案 0 :(得分:1)

要获取当前文件夹名称,请使用以下方法:

$arr = explode('/', dirname(__FILE__));
$whatyouneed = $arr[count($arr)-1];

答案 1 :(得分:1)

<?php
$str = 'http://example.com/sub/THISFOLDER/page.php';
$parts = parse_url($str);
$folders = explode('/', $parts['path']);
var_dump($folders[2]);

输出:

string(10) "THISFOLDER"

我使用了parse_url,因此无论确切的url结构如何,它都能轻松工作。

答案 2 :(得分:0)

如果你总是想在php页面之前获取最后一个文件夹。 (即使它不是第二个,你也可以使用这个代码。)

<?php
$thisPath = $_SERVER['PHP_SELF'];;
$pattern = '/(\W+)\/(\w+)\/(\w+)/';
$replacement = '$2';
echo preg_replace($pattern, $replacement, $string);
?>

抱歉,我没有运行实例测试的php实例,但它的工作方式是: 从后到前看它: 它会找到正常的单词字符并点击斜线,即“/”。然后它会寻找更多正常的字符。覆盖'/',然后它将寻找任何可能的非空白字符来覆盖其余部分。你想要中间部分。