从 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”[关闭]