标签: query-string

我应该如何将字典编码为HTTP GET查询字符串?

HTTP GET查询字符串是键/值对的有序序列:

?spam=eggs&spam=ham&foo=bar
Run Code Online (Sandbox Code Playgroud)

是,具有某些语义,相当于以下字典:

{'spam': ['eggs', 'ham'], 'foo': bar}
Run Code Online (Sandbox Code Playgroud)

这恰好适用于所请求页面的布尔属性:

?expand=1&expand=2&highlight=7&highlight=9
{'expand': [1, 2], 'highlight': [7, 9]}
Run Code Online (Sandbox Code Playgroud)

如果要停止扩展id为2的元素,只需将其弹出expand值,然后再次对查询字符串进行urlencode.但是,如果你有一个更多的模态属性(有3个以上的选择),你真的想要代表一个这样的结构:

{'highlight_mode': {7: 'blue', 9: 'yellow'}}
Run Code Online (Sandbox Code Playgroud)

其中相应id键的值是已知枚举的一部分.将此编码为查询字符串的最佳方法是什么?我正在考虑使用一系列两元组,如下所示:

?highlight_mode=(7,blue)&highlight_mode=(9,yellow)
Run Code Online (Sandbox Code Playgroud)

编辑:知道与约定相关联的任何名称也是很好的.我知道可能没有,但很高兴能够使用名称而不是示例来讨论具体的事情.谢谢!

http query-string

7
推荐指数
1
解决办法
3720
查看次数

如何读取PHP和HTML中的查询字符串?

以某些内容结尾的网址,portal.php?key2=hello如何获取"key2"的值?

html php query-string

7
推荐指数
2
解决办法
2万
查看次数

&符号中的&符号(&):SVG图像的href属性?

我正在构建一个包含各种图像标记的SVG文档.图像的xlink:href(源URL)属性包含带有&符号的查询字符串.如果我将它们作为%26或ascii编码? 它们不是有效的查询字符串,服务器也不会传递图像.我无法用CDATA逃避它们,因为它们是属性(不是节点).我已经尝试在图像标记中创建一个xlink:href节点,但是SVG解析器会忽略它.我想使用纯SVG(而不是HTML中的SVG),以便我可以在以后转换为JPG,因此编写脚本...

关于我如何能够完成以下工作的任何提示?

<image x="0" y="0" width="306" height="306" xlink:href="http://host.com/image.jpg?token=asdf&expiration=9384029&etc=etc"/>
Run Code Online (Sandbox Code Playgroud)

谢谢!

svg urlencode xlink ampersand query-string

7
推荐指数
2
解决办法
2602
查看次数

更好地替换给定URL中的查询字符串值的方法

好吧..所以基本上,说我们有一个链接:

$url = "http://www.site.com/index.php?sub=Mawson&state=QLD&cat=4&page=2&sort=z";
Run Code Online (Sandbox Code Playgroud)

基本上,我需要创建一个函数,它替换URL中的每个东西,例如:

<a href="<?=$url;?>?sort=a">Sort by A-Z</a>
<a href="<?=$url;?>?sort=z">Sort by Z-A</a>
Run Code Online (Sandbox Code Playgroud)

或者,另一个例子:

<a href="<?=$url;?>?cat=1">Category 1</a>
<a href="<?=$url;?>?cat=2">Category 2</a>
Run Code Online (Sandbox Code Playgroud)

或者,另一个例子:

<a href="<?=$url;?>?page=1">1</a>
<a href="<?=$url;?>?page=2">2</a>
<a href="<?=$url;?>?page=3">3</a>
<a href="<?=$url;?>?page=4">4</a>
Run Code Online (Sandbox Code Playgroud)

基本上,我们需要一个函数来替换$_GETURL中的特定内容,这样我们就不会得到重复内容,例如:?page=2&page=3

话虽如此,它需要是智能的,所以它知道参数的开头是a ?还是a&

我们还需要它是聪明的,以便我们可以像这样拥有URL:

<a href="<?=$url;?>page=3">3</a> (without the ? - so it will detect automatically wether to use an `&` or a `?`
Run Code Online (Sandbox Code Playgroud)

我不介意为每个preg_replace为某些$ _GET参数创建不同的变量,但我正在寻找最佳方法.

谢谢.

php query-string

7
推荐指数
3
解决办法
9094
查看次数

301从具有查询字符串的URL重定向到具有不同查询字符串的新域

我试图弄清楚如何在我的htaccess文件中执行301重定向以将一些文件重定向到新域.这是我需要知道如何做的:

旧网址:http://www.example.com/index.php? page = news&id = 2366

新网址:http://www.example2.com/news.php? name = 23546

重定向不必自动创建.我可以硬编码我需要在htaccess文件中重定向的页面,我只是不知道要使用的格式,因为我读过"标准"301重定向不适用于查询字符串.

基本上这就是我想做的事情,但到目前为止我的研究听起来并不像这样做.

redirect 301 /index.php?page=news&id=2366 http://www.example2.com/news.php?name=23546
Run Code Online (Sandbox Code Playgroud)

.htaccess redirect query-string http-status-code-301

7
推荐指数
1
解决办法
3万
查看次数

将参数添加到WKWebView中加载的所有URL的查询字符串中

我说,我正在使用"新" WKWebView来查看其中的网站http://mywebsite.com.

我会确保应用程序将在每个加载的页面中传递一个附加参数,例如:http://mywebsite.com/?username=foo.

显然,对于第一页我没有问题.在Swift中:

let url = NSURL(string: "http://mywebsite.com/?username=foo")!
let urlRequest = NSURLRequest(URL: url)
webView.loadRequest(urlRequest)
Run Code Online (Sandbox Code Playgroud)

但是如果主页上http://mywebsite.com有一个链接,比方说http://mywebsite.com/page.php?id=5,如何拦截它来添加参数username=foo呢?我希望它是开放的页面http://mywebsite.com/page.php?id=5&username=foo.

cocoa-touch query-string ios wkwebview

7
推荐指数
0
解决办法
788
查看次数

使用 javascript 在客户端动态创建面包屑

我想使用 java 脚本在客户端动态创建面包屑。面包屑将是用户导航时遵循的路径: 主页 > 关于我们 > 我们的历史..

锚标记将按照用户导航的顺序在每个页面上生成。

现在我可以使用服务器端技术轻松创建这些面包屑,但我想在客户端的每个页面上动态生成它。现在我不知道具体如何实现。

我心中的一些逻辑是:

  1. 在 Java 脚本中使用名称对创建一个对象类型变量,其中名称当前页面的名称,该页面的 url

  2. 现在,在从一个页面导航到另一页面时,使用查询字符串传递此对象变量。

  3. 然后在第二页中从查询字符串中获取该对象变量,并从该对象中提取名称和值对,然后使用它创建锚点并将其添加到目标 div(占位符)。

  4. 再次,当用户转到另一个页面时,在对象变量的最后添加 所有先前页面的名称和值对以及当前页面的名称和值对,并使用查询字符串将其传递到下一页。

  5. 现在在下一页中执行相同操作并创建锚点。

我使用 html5 客户端存储得到的一些类似内容为 html :

<ul id="navigation_links">
    <li>Page1</li>
    <li>Page2</li>
    <li>Page3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

js:

$(document).ready(function(){
    bindEventToNavigation();
});

function bindEventToNavigation(){
    $.each($("#navigation_links > li"), function(index, element){
        $(element).click(function(event){
            breadcrumbStateSaver($(event.currentTarget).html());
            showBreadCrumb();
        });
    });
} …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery breadcrumbs query-string

6
推荐指数
1
解决办法
5万
查看次数

在asp.net中读取查询字符串而不指定任何页面名称

如何读取aspx页面中的任何字符串.

例如:http://foo.com/bike stand

我想在指定的aspx页面中读取/获取字符串.预期页面字符串是自行车站
预期页面是getstring.aspx

在这里,我想读取字符串并重定向到指定的页面.
注意:我喜欢在ASP.Net(不使用MVC)中执行此操作

asp.net query-string

6
推荐指数
1
解决办法
212
查看次数

使用多键或逗号语法解析查询字符串数组

我有一个 .NET Core 6.0 Azure Function HTTP 触发器。

我希望以这两种常见形式处理数组查询字符串参数:

  • ?param=foo&param=escape%2Ctest
  • ?param=foo,escape%2Ctest

在这两种情况下我都想提取数组["foo", "escape,test"]

我惊讶地发现我可用的查询字符串解析选项要么不支持逗号语法,要么不支持将查询字符串作为参数分组的一部分进行 URL 解码。

我尝试过使用几种不同的 dotnet API:

这是.NET Fiddle 中的演示

var qs = "?param=foo,escape%2Ctest";

var a = httpRequest.Query["param"];
// ["foo,escape,test"]

var b = HttpUtility.ParseQueryString(qs)["param"];
// "foo,escape,test"

var c = QueryHelpers.ParseQuery(qs)["param"];
// ["foo,escape,test"]
Run Code Online (Sandbox Code Playgroud)

我有点惊讶的是不支持逗号分隔格式。我感到非常惊讶的是,似乎没有一种方法可以在不解码查询字符串参数的情况下获取分段查询字符串(这会阻止区分 和param=foo,escape%2Ctest?param=foo,escape,test

我将在下面将我当前的解决方案作为“答案”发布,但我希望我缺少一个使用 .NET 库的更简单的解决方案。如果有人能指出我在这里错过了什么,我将不胜感激。

.net c# query-string .net-core azure-functions

6
推荐指数
1
解决办法
2600
查看次数

如何使用新的应用程序路由器访问 Next.js 13.4 中的查询参数?

我正在使用最新版本的 Next.js (13.4) 和新的应用程序路由器。

在我的应用程序中,我有一个 Link 组件,其按钮位于 ../components/products.tsx 文件中。

每个产品都有一个“详细信息”按钮,可使用“链接”组件导航到动态路线。我使用链接组件的路径名和查询属性来传递查询参数和路由。

以下是 ../components/products.tsx 文件中 Link 组件的示例:

<Link href={{
                  pathname:`product/${item._id}`,
                  query:{
                    _id: item._id,
                    title: item.title,
                    description: item.description,
                    oldPrice: item.oldPrice,
                    price: item.price,
                    brand: item.brand,
                    image: item.image,
                    isNew: item.isNew,
                    category: item.category,
                  },
                }}
                as ={`product/${item._id}`}
                >
Run Code Online (Sandbox Code Playgroud)

在路径为 app/product/[id] 的动态路由组件 (page.tsx) 中,我想访问查询参数并将它们呈现在页面上。以下是 page.tsx 文件的示例:

import React from 'react';
import { useRouter } from 'next/router';

const ProductPage = () => {
  const router = useRouter();
  const query = router.query;

  return (
    <div>
      <h1>Product Details</h1>
      <p>ID: {query._id}</p> …
Run Code Online (Sandbox Code Playgroud)

query-string next.js next-router nextjs-dynamic-routing next.js13

6
推荐指数
1
解决办法
2万
查看次数