gpt4 book ai didi

php - PHP 的 URL 编码

转载 作者:行者123 更新时间:2023-11-30 18:30:57 24 4
gpt4 key购买 nike

我正在尝试向带有 XML 的服务器发送一个简单的 URL 请求,其中包含

xmlhttp.open("GET","serverFile.php?q="+str,true);
xmlhttp.send();

我在 javascript 文件中包含三个变量,即:

var userName = Steve;
var findtype = Green Holder;
var findcategory = B Provincial;

我试图将字符串“打包”成某种形式

var combinedString = "find&userName=" + userName + "&type=" + findType + "&category=" + findCategory;

然后调用上面的函数

xmlhttp.open("GET","serverFile.php?q="+combinedString,true);

但我很困惑如何在服务器端对此进行解码,或者这是否可行。我本来想有一个 if 语句:

$q=$_GET["q"];
if ($q == "find")
{
$name=$_GET["userName"];
$type=$_GET["type"];
$category=$_GET["category"];
...do other coding here to get data
}

但我对 PHP 还很陌生,所以我不知道这是否是正确的方法。我试图找出合适的在线 URL 编码,但组合字符串的形式是否合适? “&”是否会适本地划分内容,或者我是否需要 & 并且我是否需要在空格之间放置一个加号,或者它会自己做吗?任何信息都会有所帮助!

最佳答案

在使用字符串连接之前,您需要在 JavaScript 中对 URL 组件进行编码。

combinedString = ... + encodeURIComponent(userName) + ... + encodeURIComponent(findType) + ...

PHP会自动填充$_GET使用 url 解码值,所以如果你要传递:

?foo=%2F%40%23%24

PHP 会自动解码 $_GET['foo']等于"/@#$"


至于你的&注释,当您使用 XML 中的值(或在本例中为 HTML,两者很接近但不完全相同)时,您只需要对 XML 进行转义。

如果您只是在浏览器的地址栏中键入内容,您将使用:

somepage.php?foo=bar&fizz=buzz

但是如果您在 anchor 元素 (<a>) 中标记它,您将使用:

<a href="somepage.php?foo=bar&amp;fizz=buzz">lorem ipsum</a>

关于php - PHP 的 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com