从$ _SERVER ['PATH_INFO']分析路径的正确方法

时间:2013-04-06 05:56:47

标签: php

我正在尝试在PHP5.4中编写一个小型RESTful Service API(用于教育目的)。因此,我需要分析调用服务的URL。

我想这样做的方法是从$_SERVER['PATH_INFO']中删除URL路径并将它们放到数组中。我们假设路径信息包含/contacts/14295/。将两个路径放到数组中的正确方法是什么?

array(2) {
 [0]=>
 string(8) "contacts"
 [1]=>
 string(5) "14295"
}

我发现至少有两种方法可以将路径信息字符串拆分为一个数组,但两种方式都会产生一个包含两个以上条目的数组。

我找到的第一种方法是explode函数,它返回一个带有尾随空字符串的数组(意味着第一个和最后一个数组条目包含一个空字符串):

explode('/', $_SERVER['PATH_INFO']);

然后我尝试了preg_split函数,该函数返回一个数组,其中包含每个斜杠的条目('/'):

preg_split('//', $_SERVER['PATH_INFO']);

这两种变体对于我从URL获取路径非常不方便。我想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:4)

从数组的开头和结尾修剪“/”?

$array = explode('/', trim($_SERVER['PATH_INFO'], '/') );