PHP爆炸删除“额外”文本

时间:2013-04-15 22:55:39

标签: php explode

假设我在网页上有以下网址,我如何利用explode()功能只向我提供ID,而不是ID后面的其他网址?

file.php?id=12345&foo=bar

我可以获取ID,但总是有以下“&foo=bar”。

感谢。

3 个答案:

答案 0 :(得分:5)

如果您需要处理有效的网址,可以使用

parse_url

parse_url documentation

将URL分解为不同的部分(SCHEME,HOST,PORT,USER ...)

然后,使用

parse_str

parse_str documentation

QUERY部分上的

,以便检索包含所有参数的数组。 然后,你可以抓住你需要的东西。

答案 1 :(得分:3)

parse_str($_SERVER['QUERY_STRING']);
echo $id;

parse_str将从查询字符串变量创建PHP变量。 http://www.php.net/manual/en/function.parse-str.php

答案 2 :(得分:2)

如果是完整网址,您可以使用parse_url()获取查询字符串部分。

如果它只是一个片段,您可以使用explode()获取它,然后parse_str()

list($path, $qs) = explode('?', $url, 2);
parse_str($qs, $args);
echo $args['id'];

2告诉explode()将字符串分解为最多2个部分(在?之前和之后),在这种情况下。