我是一个看起来像这样的网址:
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);
答案 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"
}
0
和1
是此处的关键点您可以通过$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 />";
?>