从 URL 分配 $_GET 值

Posted

技术标签:

【中文标题】从 URL 分配 $_GET 值【英文标题】:Assigning $_GET values from a URL 【发布时间】:2022-01-24 01:47:40 【问题描述】:

对于 URL(FOO 可以是任何东西):

https://www.example.com/_beta!/FOO?first_name=BOB&last_name=SMITH&birthdate=12/07/2007&country_of_citizenship=Cuba

我想我可以这样做:

 foreach($_GET as $key=>$value)
   $value = trim($value);
   $key = $value;
 echo ' $'.$key.' = '.$value.'<br>'; 

Above 返回“$FOO = FOO”,这似乎不应该是 foreach 开始的一部分,因为它在第一个问号之前,并且没有返回任何其他内容。

回声 $_GET['first_name']; // 也不返回任何内容。

该 URL 是由第 3 方生成的。我必须处理发送给我的东西。

    我是个白痴,我的代码有问题 我的做法完全错误。

建议?

【问题讨论】:

您能解释一下"The URL is being generated by a 3rd party. I have to deal with what's sent me." 的工作原理吗?他们如何向您的(您的网站)发送此网址?如果不是您的服务器生成此 url(如建议的那样),您不能使用 GET 来处理任何内容....parse_url 可能更合适? 您的意思是您正在尝试将您拥有的 URL 解析为字符串值?或者 URL 实际上是您的页面,但第 3 方可能会向它发送任何查询字符串键/值对?或者是其他东西?您的意思并不完全清楚。 URL 的格式总是与我收到的完全相同的变量进行格式化,但它是在另一个国家的另一个站点上生成的。 您用循环中的值覆盖键,然后输出,即对于country_of_citizenship=Cuba,它将是$Cuba = Cuba 访问我的 URL 将始终具有相同的键/值对... 【参考方案1】:

我会先删除这一行,然后验证输出。

$key = $value;

【讨论】:

如果我忘记循环数组并尝试简单的 echo $_GET['first_name']; ...没有显示任何值,我得到一个未定义的索引错误这就是让我难过的原因......即使我只是为了测试目的而将 URL 缩短为:example.com/_beta!/FOO?first_name=BOB 我猜它是 URL 路径中的 ! 字符。我也会尝试parse_url() 或查找$_SERVER['REQUEST_URI']; 并手动解析参数。 更改 URL 以删除 teh !也没有效果。嗯嗯,看来我得想办法手动解析所有内容了……

以上是关于从 URL 分配 $_GET 值的主要内容,如果未能解决你的问题,请参考以下文章

我无法将 URL 链接分配给 http.get() [重复]

如何将会话值分配给变量

从代码将页面大小值分配给剑道网格

将数组从一行复制到一个数组对象中-“_numbersArray 永远不会分配给,并且始终具有其默认值 null”[关闭]

从 Json URL 读取 Lan ,Long 并将 lat 和 long 分配给 map 的标记?

保存get'd变量(分配后)