获取 URL 的查询部分

发布于 2024-12-11 18:49:05 字数 469 浏览 0 评论 0原文

我有一个页面可以包含以下任一格式的链接:

当URL的查询部分存在时,我需要用PHP捕获它。我尝试使用 parse_url 但我不太确定如何使用它。尝试过这个

echo (parse_url($_SERVER['REQUEST_URI']['query'])); 

,但它返回数组...

I have a page that can have a link to in either one of the formats below:

When the query part of the URL is present, I need to capture it with PHP. I tried using parse_url but I'm not really sure how to use it. Tried this

echo (parse_url($_SERVER['REQUEST_URI']['query'])); 

but it returns Array...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

悲歌长辞 2024-12-18 18:49:05

你应该这样做:

$parsed = parse_url($_SERVER['REQUEST_URI']);
echo $parsed['query'];

编辑:

如果你只需要 URL 的查询部分,而不需要更多,下面 Salman 的解决方案实际上更好一点:

echo parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);

You should do:

$parsed = parse_url($_SERVER['REQUEST_URI']);
echo $parsed['query'];

EDIT:

If you only need the query part of the URL and nothing more the solution of Salman below is actually a bit nicer:

echo parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
乱世争霸 2024-12-18 18:49:05

parse_url 的可选第二个参数允许您精确指定您需要 URL 的哪一部分:

<?php
echo parse_url("http://mydomain.com/linkID", PHP_URL_QUERY); // <empty string>
echo parse_url("http://mydomain.com/linkID?9c1023a67eaf46cae864a31097", PHP_URL_QUERY); // 9c1023a67eaf46cae864a31097

另一方面,如果适用,使用服务器变量会更容易:

echo isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";

The optional 2nd parameter of parse_url allows you to specify precisely what portion of URL you need:

<?php
echo parse_url("http://mydomain.com/linkID", PHP_URL_QUERY); // <empty string>
echo parse_url("http://mydomain.com/linkID?9c1023a67eaf46cae864a31097", PHP_URL_QUERY); // 9c1023a67eaf46cae864a31097

On the other hand, it is easier to use a server variable, if applicable:

echo isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
日久见人心 2024-12-18 18:49:05
$_SERVER['QUERY_STRING'];

这应该就是您所需要的。请参阅$_SERVER 变量

$_SERVER['QUERY_STRING'];

This should be all you need. See $_SERVER variables

红衣飘飘貌似仙 2024-12-18 18:49:05

parse_url 返回一个带有以下键的关联数组(又名哈希、字典等):

scheme - e.g. http
host
port
user
pass
path
query - after the question mark ?
fragment - after the hashmark #

它可能会分解如下内容:

scheme   user    password   host              port path       query     fragment
[http]://[santa]:[password]@[www.website.com]:[80]/[page.php]?[var=val]#[anchor]

您似乎正在寻找其中之一:

$parsedUrl = parse_url($_SERVER['REQUEST_URI']);
echo $parsedUrl['query'];
echo $_SERVER['query_string'];

parse_url returns an associative array (aka hash, dictionary, etc.) with the following keys:

scheme - e.g. http
host
port
user
pass
path
query - after the question mark ?
fragment - after the hashmark #

which could break down something like this:

scheme   user    password   host              port path       query     fragment
[http]://[santa]:[password]@[www.website.com]:[80]/[page.php]?[var=val]#[anchor]

you appear to be looking for one of these:

$parsedUrl = parse_url($_SERVER['REQUEST_URI']);
echo $parsedUrl['query'];
echo $_SERVER['query_string'];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文