如何在PHP中遍历url的每个文件夹

时间:2015-08-14 09:30:14

标签: php

假设我的网址为 -

http://localhost/wordpress/index.php/solutions/

如果我使用echo $_SERVER['REQUEST_URI'];

它会将输出设为/wordpress/index.php/solutions/

PHP中是否有任何buit-in功能允许我回显 URL中每个文件夹的名称?

  • 的wordpress
  • 的index.php
  • 解决方案

我需要在程序中提到上面的名字

2 个答案:

答案 0 :(得分:6)

您可以像这样使用函数explode

$paths = explode("/", $_SERVER['REQUEST_URI']);
$paths = array_values(array_filter($paths)); // Filter out the empty first row

然后您可以通过以下索引访问它们:

$wordpress = $paths[0]; // "wordpress"

如果想要包含查询字符串,则应将其过滤为 a1111exe

$paths = explode("/", preg_replace("/\?.*$/", "", $_SERVER['REQUEST_URI']))
$paths = array_values(array_filter($paths));

答案 1 :(得分:0)

同时检查一下:

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

然后,上面带有键path的数组就是你要找的。