我有一个URL,看起来像这样:
http://www.site.com/subdomain1/product/123123/variable-text-goes-here
我正在尝试提取URL中的第一个目录,即/subdomain1/
我真的不在乎如何获得它,无论是通过通配符替换还是通过将URL分解成数组。不幸的是,不管怎样,我的运气都不太好。
一些要点:a) /product/
将始终是完全相同的文本"产品"b) url的数量和可变文本部分(最后2位)是完全可变的。c) 子域1部分也是可变
这是我的代码:
<?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);
$url = 'http://example.com/subdomain1/product/123123/variable-text-goes-here';
$path = parse_url($url)['path'];
echo explode('/', $path)[1];
如果您的PHP是<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];
数组在有键和值的情况下工作
$var = array('val1', 'val2');
var_dump($var);
转储
array(2) {
[0]=>
string(4) "val1"
[1]=>
string(4) "val2"
}
0
和1
是这里的键,您可以通过$var[0]
等引用它们。现在,通过分隔符分解字符串并返回一个数组来进行分解。您可以使用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];
测试:
<?php
$r = $_SERVER['REQUEST_URI'];
$test1 = explode('/', $r);
echo $test1[3]."Array position #3<br />";
?>