在不同的情况下获取部分URL

时间:2013-10-09 09:40:00

标签: php

我今天想问你,如果你帮我改进我的代码我试图获得url的id,它总是在/ id /之后最终为了这个例子我需要“9050102”没有引号。< / p>

网址可以有不同的方式:

.site.com/Descreption-Text-Etc/id/9050102
site.com/Descreption-Text-Etc/id/9050102
site.com/bi/product/9050102
.site.com/bi/product/9050102

我的代码:

$foo = explode('/', $url); //Extracing ID
$id = strtoupper($foo[3]); //ID

我注意到在某些情况下它不能确定原因 所以在那之后我添加了:

if (!$id) { 

$id = strtoupper($foo[2]); //Making Sure ID Found

} 

你可以帮助我改进吗,以便始终100%准确地找到它吗?

4 个答案:

答案 0 :(得分:0)

如果您确定ID始终位于最后一个位置,则可以使用end函数获取数组的最后一个元素:

$id = end($foo);

if ($id && isset($id[9])) {
   // this means that the ID exists and has at least 10 characters
}

答案 1 :(得分:0)

您可以使用end函数来获取数组中的最后一个元素。它将数组指针设置为最后一个元素并返回其值。

$foo = explode('/', $url); //Extracing ID
$id = strtoupper(end($foo)); //ID
if(isset($id) && strlen($id)==10) {
//code
}

答案 2 :(得分:0)

$foo = explode('/', $url);
//count the $foo array
$count = count($foo);
//the last index will be minus 1
$id = $foo[$count-1];

答案 3 :(得分:0)

试试这个

<?php
$url = "site.com/Descreption-Text-Etc/id/9050102";
echo substr($url, strrpos($url, "/") + 1);