繁体   English   中英

如何在PHP中使用哈希传递参数

[英]How to pass parameters with hash in PHP

最近,当我看到google结果页面时,查询和其他参数以#(哈希)而不是通常的“?”传递

另外,在facebook上我看到了同样的事情。 这很有趣,在用google进行简单搜索后,我发现与perl和Ruby有关的结果,但与PHP无关。

是否可以在PHP中用#而不是“?”传递参数? 或者这仅在perl / Ruby中可行。 这将很有用,搜索引擎将不会解析URL中的参数。

任何想法对我都会有帮助。

传统上, #告诉浏览器自动滚动到页面中的特定点,该点过去(现在仍然)用于实现从页面的一部分(例如目录)到另一部分(例如节标题)的链接。 )。

但是,它也具有使包含#的URL记录在历史记录中的作用,即使它与先前的URL相同(除了#及其后面的内容)也是如此。 (换句话说,用户仍在同一页面上。)这意味着后退按钮可用于返回到您之前的状态,即使该状态更改与某个页面不对应-加载。

因此,现代AJAX应用程序经常使用它来表示发生了某些事情,用户可能想“回头”。

不,这是不可能的。
您所看到的只是一种装饰,可以在地址栏中反映AJAX调用。

无论选择哪种语言,它们都位于服务器端,并使用HTTP协议与浏览器进行通信。 并且HTTP请求中不允许使用锚。 那完全是客户端的事情

您会在搜索结果中遇到混乱,因为术语“哈希”已超载 ,参数传递的概念也是如此。

您正在看到有关在哈希中传递值的概念的引用,因为在某些语言中, 关联数组称为哈希(哈希表是哈希表的缩写)。

#字符也容易混淆。 它被称为“哈希”,“英镑”,“数字”和“八字形”。 自从我在美国长大以来,我就称其为“英镑符号”,这可能会给使用更多英式英语的用户带来烦恼,并且同样充满混乱的可能性(考虑“£”)。

在Perl中的哈希中传递函数参数是获取例程命名参数的一种好方法。 PHP仅具有位置参数,但在此处使用Array效果很好。

许多Web库将哈希/关联数组类型结构用于表单值。 键通常是字段ID,值是字段值。

在URI中, #表示片段说明符的开始。 它标识URI指向的页面部分。 通常,它不用于将请求信息从客户端传递回服务器。

大概有一些服务器重写。 apache服务器示例,您可以处理一些uri

http://www.mysite.com#something

并重写为

http://www.mysite.com/perl/script.pl?data=something

然后将其作为对您的script.pl的简单GET查询进行处理

这是所有服务器端处理,对客户端不可见

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM