2012-06-18 96 views
-1

可能重复:
PHP Get end string on url between/and /PHP获取URL的最后一个字返回空白

我有这样的代码来获得的URL的最后一部分/和/结尾。

的网址是:

http://mydomain.com/category/mobile/ 

我需要从中检索 “手机”。

我使用的代码是:

$url = trim($url, '/'); 

//Put it in a variable 
$the_category = substr($url, strrpos($url, '/')); 

//whats in it? 
echo $the_category; 

以上的回报没有什么...任何想法?

+0

我想你的代码,它打印'/移动' – flowfree

+0

我只是通过设置$ url =“http://mydomain.com/category/mobile/”并且它工作正常。按预期返回/移动。 – EmmanuelG

+0

Working http://codepad.org/f5dhMGAw –

回答

2

你应该爆炸使用数组“/”作为分隔符,然后得到数组的最后一个值,就像这样:

<? 
$url = $_SERVER['REQUEST_URI']; 

$url = trim($url, '/'); 

$array = explode('/',$url); 

$the_category = end($array); 

//what's in it? 
echo $the_category; 
?> 
+0

最终,这与他在做什么不同?他解析了字符串中最后一个正斜杠的位置..除了将每个元素分解为一个新的(未使用的)变量,只是为了结束关闭之外,您还是这样做。由于阵列的原因,您的方式可能会占用较高的内存空间。这两种方法都是非常草率的解析请求参数的方法。 –

+0

他包含了正斜杠,所以它返回“/ mobile”而不是“mobile”,但是如果URI中包含的子类别也可能需要使用,那么该数组很有用。另外他说他没有工作(公平地说我没有测试它),而且这样做。 – iDsteven

+0

这与硬编码的url字符串一起工作...我如何获得$ url获取我的实际url而不是硬编码字符串? – Satch3000

2

如何:

$the_category = basename($url); 
+2

+1:是的。如果你打算使用PHP,你可以使用它提供的效用函数,而不是自己重写它们。 – Spudley