php如何读取此参数

时间:2011-02-03 07:31:05

标签: php

如果我有一个看起来像这样的存储输入字符串

http://site.com/param1/value1

php如何提取value1


我知道如何提取看起来像这样的参数

http://site.com?param1=value1

但它不适合我要问的格式。

7 个答案:

答案 0 :(得分:2)

一般情况下你可以用parse_url解析url,然后用/来爆炸路径,然后读取数组中的第二个值。

答案 1 :(得分:2)

您可以使用简单的字符串函数组合:

$str = "http://site.com/param1/value1";
$tail = substr($str, strrpos($str, "/") + 1);

或者,如果它不确定字符串中是否有/

preg_match("#/(\w+)$#", $string, $match);
$tail = $match[1];

对于微优化器:这也通常会更快,因为array-explode()解决方法。

答案 2 :(得分:1)

快速&易:

$url = "http://site.com/param1/value1";

$split_url = explode("/", $url);
$value = $split_url[3];

答案 3 :(得分:1)

$url = 'http://example.com/param1/value1';
list($param1, $value1) = array_slice(explode('/', $url), -2, 2);

这将为您提供存储在变量$ param1和$ value1中的示例中的param1和value1。

答案 4 :(得分:1)

查看一些php.net手册,您可以轻松找到这个功能,完全符合您的需求

strchr

答案 5 :(得分:0)

查找parse_URL,这是你想要的功能

答案 6 :(得分:0)

我建议将Trickers和Toby Allens解决方案结合使用

$path = parse_url($url, PHP_URL_PATH);
$segments = explode('/', trim($path, '/'));
$value = $segments[2];

如果你有多个key-value-paris,你可以确保trim(),键始终是偶数,值总是奇数

$count = count($segments);
$result = array();
for ($i = 0; $i < $count; $i += 2) {
  $result[$segments[$i]] = $segments[$i+1];
}