PHP分解删除“;额外的“;文本


PHP Explode Remove "Extra" Text

假设我在网页上有以下URL,我如何利用explode()函数只给我ID,而不给ID后面的其余URL?

file.php?id=12345&foo=bar

我可以得到ID,但总有下面的"&foo=bar"。

谢谢。

如果需要处理有效的URL,可以使用

parse_url

parse_url文档

将URL分解为不同的部分(SCHEMA、HOST、PORT、USER…(

然后,使用

parse_str

parse_str文档

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

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

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

如果是完整的URL,可以使用parse_url()来获取查询字符串部分。

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

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

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