如何在直接地址栏不编码的情况下在查询字符串中传递 url(包括“&”运算符)?

Posted

技术标签:

【中文标题】如何在直接地址栏不编码的情况下在查询字符串中传递 url(包括“&”运算符)?【英文标题】:How to pass url(include '&' operator) in query string without encode at direct address bar? 【发布时间】:2017-07-23 04:23:26 【问题描述】:

我用的是laravel框架。

如何在写直接地址栏时在查询字符串中传递url(包括'&'运算符)

像这样:(无编码

https://test.com/test?q=test&url=http://ddd.com?dd=dd&aa=aa&cc=cc

我想要下面代码中的结果查询参数

['q' => test, 'url' => 'http://ddd.com?dd=dd&aa=aa&cc=cc']

我该怎么办?

【问题讨论】:

是路由吗?还是只是一个特定的网址? 是的,它是一个路由 url 我强烈鼓励你编码它 - 即使你让它创建一个返回到你自己的路由的 url 而不编码它,我不知道 Laravel 有多好会将其作为真正的路线处理...是否有理由为什么不应该对其进行编码? 我不应该对其进行编码。使用该 url 的用户不知道编码的概念。 【参考方案1】:

由于 Laravel 会尝试从字符串中删除 http://,因此您可以尝试像这样添加 url。

url('/my-url', [
  'q' => 'test',
]) . 'url?=http://..../';

// or

route('my.route.get', [
  'q' => 'test',
]) . 'url?=http://..../';

【讨论】:

不适合我真正的响应结果是 ['q'=>'test', 'url'=>'ddd.com?dd=dd' , 'aa' =>'aa' , 'cc' = >“抄送”] @KwanUngPark 请立即检查。这是你能做的最好的事情,因为 laravel 从并发字符串中删除了 http://。 这是一种无需处理代码直接输入地址栏的方法。这种方式是不正确的。【参考方案2】:

假设您的路线如下所示:

Route::get('/id, array('as' => 'test.route', function($id)
    return $id;
));

您会在视图中生成这样的链接

<a href=" route('test.route', array('id' => 1,  'something' => 'here',  'another' => 'there')) ">click here</a>

你的网址应该是这样的:

http://localhost:8000/1?something=here&another=there

more

【讨论】:

以上是关于如何在直接地址栏不编码的情况下在查询字符串中传递 url(包括“&”运算符)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有来自脚本的 Internet 连接的情况下在 Python 中转发地理编码?

如何在没有查询的情况下在 Retrofit 中提取 Json 数据

如何在没有百分比编码的情况下在 Swift URL 中包含重音字符?

如何在没有附加查询的情况下在 SQL Server 中连接没有子查询的 GROUP BY 子句中的字符串?

如何在不使用窗口函数的情况下在大查询中选择 max(date)?

如何在不进行硬编码的情况下在 C++ 中获取类数组的长度?