相关疑难解决方法(0)

获取PHP中的完整URL

我使用此代码获取完整的URL:

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
Run Code Online (Sandbox Code Playgroud)

问题是我在我.htaccess身上使用了一些掩码,所以我们在URL中看到的并不总是文件的真实路径.

我需要的是获取URL,URL中写的内容,仅此而已 - 完整的URL.

我需要了解它在Web浏览器的导航栏中的显示方式,而不是服务器上文件的真实路径.

php url

978
推荐指数
18
解决办法
273万
查看次数

HTTP URL - 参数名称中允许的字符

关于URL参数名称中允许哪些字符,是否有任何正式限制?

我一直在阅读RFC3986("统一资源标识符(URI):通用语法"),但没有得出明确的结论.

我知道有实际的限制,但实际上是禁止做类似的事情:

param with\funny<chars>=some_value

只要我正确地逃脱它:

param%20with%1cfunny%3cchars%3e=some_value

url specifications http character-encoding

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

具有解码可能性(缩短url)的最短可能编码字符串仅使用PHP

我正在寻找一种方法,将字符串编码为尽可能的长度并让它可解码(纯PHP,没有SQL).我有工作脚本,但我对编码字符串的长度不满意.

场景:

链接到图像(取决于我想向用户显示的文件分辨率):

  • www.mysite.com/share/index.php?img=/dir/dir/hi-res-img.jpg&w=700&h=500

编码链接(因此用户无法猜测如何获取更大的图像):

  • www.mysite.com/share/encodedQUERYstring

所以,基本上我只想编码网址的搜索查询部分:

  • IMG = /目录/目录/高分辨率-img.jpg&W = 700,H = 500

我现在使用的方法将上面的查询字符串编码为:

  • y8xNt9VPySwC44xM3aLUYt3M3HS9rIJ0tXJbcwMDtQxbUwMDAA

我使用的方法是:

 $raw_query_string = 'img=/dir/dir/hi-res-img.jpg&w=700&h=500';

 $encoded_query_string = base64_encode(gzdeflate($raw_query_string));
 $decoded_query_string = gzinflate(base64_decode($encoded_query_string)); 
Run Code Online (Sandbox Code Playgroud)

如何缩短编码结果并仍然可以使用PHP 对其进行解码?

php encoding decoding

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

ASP.NET 核心 FromQuery 获取内部带有点符号的无效参数

我正在尝试将一些带有 GET 请求的参数发送到查询字符串中的控制器。我将查询字符串中的所有参数Dictionary<string, string>使用[FromQuery]. 它运行良好,直到参数名称之一包含点 ( .) 符号。我检查了Request.Query对象,看起来它解析得很好,但是我的 Dictionary 对象得到了这个,确切的项目错误。所以它看起来像[FromQuery]活页夹中的错误,或者我做错了什么。下面的代码Request.Query和我的调试值parameters在此处输入图片说明

这是发送的查询字符串的样子: ?query=&InspectionType=Safety&ItemType=InspectionPoint&RecordParentGUID=9275bee2-0a2d-461c-8835-51880e76f035&parent.ResultClassCode=parent.ResultClassCode

更新:从在 .net 开发团队工作的 Eilon Lipton 得到答案,简而言之 - 这是设计使然。点号“.” 和 '[', ']' 是用于表示属性和索引器的特殊字符。完整答案在这里:https : //github.com/aspnet/Mvc/issues/6746

c# asp.net asp.net-mvc asp.net-core-mvc asp.net-core

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

如何传递包含斜线字符的字符串路径参数?

我有这个REST资源:

@GET
@Path("{business},{year},{sample}")
@Produces(MediaType.APPLICATION_JSON)
public Response getSample(
        @PathParam("business") String business,
        @PathParam("year") String year,
        @PathParam("sample") String sampleId {
    Sample sample = dao.findSample(business, year, sampleId);
    return Response.ok(sample).build();
}
Run Code Online (Sandbox Code Playgroud)

sample例如,param可以包含斜杠字符:6576/M982

http://ip:port/samples/2000,2006,6576/M982明显,我正在用它来调用它,但是不起作用。

我也尝试过使用http://ip:port/samples/2000,2006,6576%2FM982,将斜杠编码为%2F,但也不起作用,也无法到达端点。

编辑

我正在使用Retrofit来调用端点,并且这样做:

@GET("/samples/{business},{year},{sampleId}")
Observable<Sample> getSampleById(
        @Path("business") String business,
        @Path("year") String year,
        @Path(value = "sampleId", encoded = true) String sampleId);
Run Code Online (Sandbox Code Playgroud)

使用encoded = true,但仍然无法正常工作。

java spring jersey

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