Php 如何将$\u GET转换为变量?
我在使用Php 如何将$\u GET转换为变量?,php,html,variables,get,global-variables,Php,Html,Variables,Get,Global Variables,我在使用$\u GET时遇到问题 我有一个URL,看起来像http://www.example.com/404.php?uri=xyz。现在我想读出$\u GET['uri']并将其转换为一个变量,稍后将用于header函数 代码如下所示: $get_uri = $_GET['uri']; ... if ( empty($_POST['pref_lang']) === false ) { header("Location: ../$content/404.php?uri=$get_uri"
$\u GET
时遇到问题
我有一个URL,看起来像http://www.example.com/404.php?uri=xyz
。现在我想读出$\u GET['uri']
并将其转换为一个变量,稍后将用于header函数
代码如下所示:
$get_uri = $_GET['uri'];
...
if ( empty($_POST['pref_lang']) === false ) {
header("Location: ../$content/404.php?uri=$get_uri");
}
但由于某些原因,这不起作用。当我将变量$get\u uri
更改为类似$get\u uri=“123”代码>它可以工作。当我回显$get\u uri=$\u get['uri']
时,它将正确地回显它
如果有人能给我一个关于如何取这个的提示,那就太好了
非常感谢。您需要正确编码:
header("Location: ../$content/404.php?" . http_build_query(array('uri' => $get_uri)));
您需要对其进行正确编码:
header("Location: ../$content/404.php?" . http_build_query(array('uri' => $get_uri)));
对不起,迟了答复,在我看来,这个代码应该工作,你能检查这个代码,让我知道反馈吗
<?php
$domainName=explode("uri=", "http://www.example.com/404.php?uri=xyz");
echo $get_uri=$domainName[1];
if ( empty($_POST['pref_lang']) === false ) {
header("Location: ../$content/404.php?uri=$get_uri");
}
?>
很抱歉回复太晚,在我看来,这段代码应该可以工作,你能检查一下这段代码并告诉我反馈吗
<?php
$domainName=explode("uri=", "http://www.example.com/404.php?uri=xyz");
echo $get_uri=$domainName[1];
if ( empty($_POST['pref_lang']) === false ) {
header("Location: ../$content/404.php?uri=$get_uri");
}
?>
只要头调用与设置的$get\u uri
在同一范围内,就应该是好的。尝试将header调用更改为print,并查看您得到的结果您所显示的代码没有问题。你做了什么来调试这个?分配给vardump后,您能否vardump
$get\u uri?不工作不是一个适当的问题描述。相反,请描述您的代码应该如何运行以及它实际如何运行只要头调用与设置的$get\u uri
在同一范围内,您就应该是好的。尝试将header调用更改为print,并查看您得到的结果您所显示的代码没有问题。你做了什么来调试这个?分配给vardump后,您能否vardump
$get\u uri?不工作不是一个适当的问题描述。相反,请描述您的代码应该如何运行以及它实际如何运行您好,谢谢您的回答。我将收到以下错误消息:解析错误:语法错误,意外的T_对象_运算符,预期'“…我修复了输入错误,它应该是=>
而不是->
。如果将标题更改为echo
,您会看到什么?它看起来对我有用。未定义的索引:uri。。。第2行=>什么是$get_uri=$\u get['uri'];这是一个完全不同的问题:此脚本的调用方没有发送uri=
参数。您需要检查if(isset($\u GET['uri'])
您好,谢谢您的回答。我将收到以下错误消息:解析错误:语法错误,意外的T\u对象运算符,预期')…我修复了输入错误,它应该是=>
而不是->
。如果将标题更改为echo
,您会看到什么?它看起来对我有用。未定义的索引:uri。。。第2行=>什么是$get_uri=$\u get['uri'];这是一个完全不同的问题:此脚本的调用方没有发送uri=
参数。您需要检查if(isset($\u GET['uri'])
您好,谢谢您的回答,代码的问题是uri=xyz是一个变量,将自动创建。因此,我需要通过$\u GET读取。谢谢。您可以稍微澄清一下,即uri也会变化,或者仅在=即xyz只会变化之后才变化吗?否则,我们可以这样使用,这就像是对url进行签名,然后分解,我想k它将工作$domainName=explode(“uri=”,$\u SERVER['SERVER\u NAME']);您好,谢谢您的回答,代码的问题是uri=xyz是一个变量,将自动创建。因此,我需要通过$_GET读取。谢谢。您能否稍微澄清一下,即uri也会变化,或者仅在=即xyz只会变化之后才变化?否则我们可以这样使用,这就像是对url进行签名,然后分解,我认为它是我将使用$domainName=explode(“uri=,$”服务器['SERVER\u NAME']);