使用php数组或搜索/替换获取URL的第一个目录

时间:2013-11-24 01:08:24

标签: php arrays str-replace friendly-url

我是一个看起来像这样的网址:

http://www.site.com/subdomain1/product/123123/variable-text-goes-here

我正在尝试提取网址中的第一个目录,或/subdomain1/

我并不关心如何通过通配符替换或将URL拆分为数组。不幸的是,无论如何我都没有多少运气。

一些要点: a)/product/将始终是相同的文本“产品” b)url的数字和可变文本部分(最后2位)是完全可变的。 c)subdomain1部分也是变量

这是我的代码:

<?php 
$r = $_SERVER['REQUEST_URI']; 
$test1 = explode('/', $kevtest, 1);
echo 'This is the directory - '.$test1;
 ?>

页面上的结果如下所示:

This is the directory - Array

我对阵列不太熟悉,所以我没有运气取出阵列的结果。

或者,搜索/替换变量URL的其余部分以获取URL的第一部分就可以了。

$test1 = str_replace("/product/ (how to I wildcard here?)","",$r);

3 个答案:

答案 0 :(得分:2)

$url = 'http://example.com/subdomain1/product/123123/variable-text-goes-here';
$path = parse_url($url)['path'];
echo explode('/', $path)[1];

如果你的PHP是&lt; 5.4,使用这个:

$url = 'http://example.com/subdomain1/product/123123/variable-text-goes-here';
$urlParts = parse_url($url);
$path = $urlParts['path'];
$subdomain = explode('/', $path);
echo $subdomain[1];

答案 1 :(得分:1)

数组在有键和值的地方工作

$var = array('val1', 'val2');
var_dump($var);

转出

array(2) {
  [0]=>
  string(4) "val1"
  [1]=>
  string(4) "val2"
}

01是此处的关键点您可以通过$var[0]等来引用它们。现在,explode通过分隔符破坏您的字符串并返回阵列。您可以使用var_dump

查看内容
$var = explode('/', '/subdomain1/product/123123/variable-text-goes-here');
var_dump($var);

转出

array(5) {
  [0]=>
  string(0) ""
  [1]=>
  string(10) "subdomain1"
  [2]=>
  string(7) "product"
  [3]=>
  string(6) "123123"
  [4]=>
  string(23) "variable-text-goes-here"
}

所以......在这种情况下你要引用

$var[1];

答案 2 :(得分:0)

试验:

<?php
   $r = $_SERVER['REQUEST_URI']; 
   $test1 = explode('/', $r);
   echo $test1[3]."Array position #3<br />"; 
?>