我还在学习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;
但如果有任何/替代或更好的方法,请做。
再次感谢。
答案 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