我知道标题不是很清楚。我是PHP的新手,所以可能有这个名字的名字,我会尽力解释。有时在URL中,当使用PHP时,会有一个问号,后面跟着数据。对不起,我知道这很无聊,但我不确定是什么叫做教程或其他任何东西。这就是我的意思:
http://www.website.com/error_messages.php?error_id=0
如何将其配置为根据数字显示不同的文本(在此示例中为数字)
有人可以告诉我这叫做什么以及我该怎么做?我已经和PHP一起工作了几天而且我迷路了。非常感谢你理解我是新人。
答案 0 :(得分:6)
“data”是URL querystring ,它对该HTTP请求的 GET变量进行编码。
以下是有关查询字符串的更多信息:http://en.wikipedia.org/wiki/Query_string
在PHP中,您可以使用$_GET
“超全局”变量
// http://www.website.com/error%5Fmessages.php?error%5Fid=0
// %5F is a urlencoded '_' character, which your webserver will most likely
// decode before it gets to PHP.
// So ?error%5Fid=0 reaches PHP as the 'error_id' GET variable
$error_id = $_GET['error_id'];
echo $error_id; // this will be 0
查询字符串可以通过用 &
字符分隔它们来编码多个GET变量。例如:
?error_id=0&error_message=Something%20bad%20happened
error_id => "0"
error_message => "Something bad happened"
在该示例中,您还可以看到空格被编码为%20
。
以下是有关“百分比编码”的更多信息:http://en.wikipedia.org/wiki/Percent-encoding
答案 1 :(得分:2)
问号后的数据称为“查询字符串”。它通常包含以下格式的数据:
param1=value1¶m2=value2
即,它是键值对的列表,每对用“&”符号(&)分隔。为了在值中传递特殊字符,必须使用URL编码格式对它们进行编码:使用百分号(%),后跟两个代表字符代码的十六进制字符。
在PHP中,通过查询字符串传递的参数将使用超全局变量$_GET
自动传播到您的脚本:
echo $_GET['param1']; // will produce "value1" for the example above.
QUERY_STRING
服务器变量可以检索原始的,未处理的查询字符串:
echo $_SERVER['QUERY_STRING'];
答案 2 :(得分:1)
它被称为查询字符串。
在PHP中,您可以通过superglobal $_GET
例如:
http://www.example.com/?hello=world
<?php
// Use htmlspecialchars to prevent cross-site scripting attacks (XSS)
echo htmlspecialchars($_GET['hello']);
?>
如果您想创建一个追加到网址的查询字符串,可以使用http_build_query()
:
$str = http_build_query(array('hello' => 'world'));
答案 3 :(得分:1)
如前所述,?
之后的数据是查询字符串(或GET数据),并使用$_GET
变量进行访问。 $_GET
变量是一个包含查询字符串中的name = value对的数组。
以下是$_GET
的简明描述及其用法示例:
http://www.w3schools.com/php/php_get.asp
数据也可以作为POST数据(在$_POST
变量中找到)提交给PHP脚本,用于密码等,并且不存储在URL中。 $_REQUEST
变量包含POST和GET数据。 POST和GET数据通常源于用户输入Web表单(但GET数据也可以直接来自指向地址的链接,如您的示例所示)。有关在PHP中使用Web表单的更多信息,请访问:
答案 4 :(得分:0)
其名为“查询字符串”
您可以通过$ _SERVER [“QUERY_STRING”]
检索它或者你可以遍历$ _GET
在这种情况下是error_id,你可以用这样的东西来检查它
echo $_GET['error_id'];
答案 5 :(得分:0)
您正在寻找的术语是GET。所以在php中你需要访问$ _GET ['variable_name']中的GET变量,例如在你给出的示例中,$ _GET ['error_id']将包含值0.然后,您可以在逻辑中使用它来回显不同的信息。
答案 6 :(得分:0)
问号后面的位称为Query String。格式通常(尽管不一定总是)键值对,其中对由&符号(&amp;)分隔,并且值与名称通过等号(=)分隔:?var1=value1&var2=value2&...
。大多数Web编程环境提供了一种以这种格式访问名称 - 值对的简便方法。例如,在PHP中,有一个superglobal,它是这些键值对的关联数组。在您的示例中,可以通过以下方式访问error_id:
$_GET['error_id']
名称“GET”的原因是查询字符串变量通常与HTTP GET请求相关联。 POST请求也可以包含GET变量,而GET请求不能包含POST变量。
至于你提出的其余问题,你可以通过多种方式处理文本问题,最简单的方法是切换错误ID:
$error_id = isset($_GET['error_id']) ? $_GET['error_id'] : 0;
switch($error_id) {
case 1:
echo "Error 1";
break;
default:
echo "Unknown Error";
break;
}
更复杂的方法是从文件,数据库或者你有什么来查找错误消息。