如何在第一次'?'后得到一切从任何网址?

时间:2014-09-09 04:25:56

标签: php url

我正在开发一个项目,需要将url中第一个?之后的所有内容存储到新的php变量中。

我知道可以通过strpos函数来完成,但我很困惑,不知道该怎么做。

例如,这是我的问题。

如果网址为www.domain.com/abcd?uj=34&kku=oo9 我需要将uj=34&kku=oo9存储到一个新的php变量中。

 $id = substr( $url, strrpos( $url, '?' )+1 );

此功能执行类似的工作并不完全找到最后的?

3 个答案:

答案 0 :(得分:2)

注意:strrpos返回上次出现,strpos返回第一次出现

您也可以在这种情况下使用parse_url

$url = 'www.domain.com/abcd?uj=34&kku=oo9';
$query_string = parse_url($url, PHP_URL_QUERY);
echo $query_string; // uj=34&kku=oo9

答案 1 :(得分:0)

$str = explode("?","www.domain.com/abcd?uj=34&kku=oo9");
echo $str[count($str)-1];

答案 2 :(得分:0)

尝试循环遍历GET数组,如下所示:

end = "";
foreach($_GET as $key=>$value) {
    end .= $key . "=" . $value . "&";
}

最后会给你留下额外的&符号,所以一定要在foreach循环后将其修剪掉。

我必须添加一个友好的提醒,永远不要相信用户提交或可以编辑的输入。注意不要以可能让黑客破坏或通过精心制作的URL获取访问权限的方式使用GET值。