你如何提取根目录?

时间:2010-12-07 13:19:56

标签: php directory-structure

我还在学习php。

'SCRIPT_FILENAME' => string 'D:/Project Storage/wnmp/www/folder/index.php' (length=45)
'SCRIPT_NAME'     => string '/folder/index.php' (length=18)
'DOCUMENT_URI'    => string '/folder/index.php' (length=18)
'PHP_SELF'        => string '/folder/index.php' (length=18)
'REQUEST_URI'     => string '/folder/helloworld/helloworldtwo/etc' (length=15)

正如您所见,我只想获得helloworld/helloworldtwo/etc

提取文件夹的想法?所以这将是helloworld/helloworldtwo/etc

我在想什么是我定义我的文件夹,如$root = 'folder'。然后我提取它,如果它匹配,但问题是什么?

第二个想法是从php_self或以上任何内容获取第一个来自/first/second.php, 但我再也不知道最好的方法。

另一个问题是我们前面有两个文件夹吗?顺便感谢所有的重播,我还在做一些阅读php.net,测试,并尝试。

'SCRIPT_FILENAME' => string 'D:/Project Storage/wnmp/www/folder/index.php' (length=45)
'SCRIPT_NAME'     => string '/folder/folder2/index.php' (length=18)
'DOCUMENT_URI'    => string '/folder/folder2/index.php' (length=18)
'PHP_SELF'        => string '/folder/folder2/index.php' (length=18)
'REQUEST_URI'     => string '/folder/folder2/helloworld/helloworldtwo/etc' (length=15)

问题仍然是一样的,我怎样才能以正确的方式获得helloworld / hellowrodltwo /等。

编辑* 伙计们非常感谢我已经找到了解决方案

$str = 'folder/folder/helloworld/helloworldtwo/etc';
$folder = 'folder/folder';
$q = str_replace($folder, NULL, $str);
echo $q;

但如果有任何/替代或更好的方法,请做。

再次感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用PHP中的爆炸功能

$str = 'folder/helloworld/helloworldtwo/etc';

print_r(explode('/', $str, 2));

输出将是:

Array
(
    [0] => folder
    [1] => helloworld/helloworldtwo/etc
)

如果你有多个文件夹/你可以使用'folder /'作为分隔符而不强加限制

$str = 'folder/folder/helloworld/helloworldtwo/etc';

print_r(explode('folder/', $str));

输出将是:

array (
  0 => '',
  1 => '',
  2 => 'helloworld/helloworldtwo/etc',
)

然后你可以使用implode函数将它连接回一个字符串

$returnValue = implode('', array (
  0 => '',
  1 => '',
  2 => 'helloworld/helloworldtwo/etc',
));

加入这2个函数,你可以从网址中删除你想要多少个文件夹,并在字符串末尾有干净的网址

答案 1 :(得分:1)

如果您知道要删除"/folder/",那么您可以使用以下内容:

$extracted = str_replace("/folder/","",$_SERVER['REQUEST_URI'],1);

这项任务取代了/folder/和空字符串的所有出现。这会给/folder/helloworld/folder/helloworld2

等网址带来问题