如何缩短URL查询参数?

时间:2009-05-01 13:43:03

标签: php friendly-url

我的脚本生成了一个非常长的URL,就像下面的那个一样,我想知道如何通过算法或技术缩短它?

这是长网址: http://example.com/script.php?param1=value1&param2=value2&param3=value3&param4=value4&param5=value5

我想将它缩短为这样的东西: http://example.com/script.php?p=430x2920

如何通过缓存数据库的原始链接来完成此操作?

提前致谢。

7 个答案:

答案 0 :(得分:1)

将静态值添加到$_SESSION[]

答案 1 :(得分:1)

您可以使用post作为您的值。但是如果你真的需要url里面的所有信息,我认为你应该开始实现url重写.... here是重写的开始。

答案 2 :(得分:1)

如果您不想使用数据库来存储缩短(散列)URL的查找表,那么您将不得不设计某种函数来将缩短的URL转换为完整的URL。

换句话说,您的全长网址必须具有可以压缩为较短网址的属性。

例如,我可以压缩以下网址

http://example.com/script.php?param1=saffron&param2=sierra&param3=4

http://example.com/script.php?p=p1.sa_p2.si_p3:4

如果我知道param1和param2只接受某些关键字,而param3只接受数字。

答案 3 :(得分:1)

您可以随时使用带分隔符的单个参数,然后将其拆分为代码。

http://example.com/script.php?p=1x2x3x4x5

使用x或任何你想要的东西,它不是作为分隔符的可能值的一部分。

答案 4 :(得分:0)

  • 使用RESTful界面,而不是一堆查询参数。

  • 存储将在服务器上的会话中保留的值,并由会话cookie键入。

答案 5 :(得分:0)

计算出一整套可能的值,并提出一种双向算法来编码/解码它们。

例如,如果你有3个参数并且它们只是单个数字整数,那么你可以使用?123并将每个字符拆分查询字符串来代替?param1 = 1& param2 = 2& param3 = 3参数。

这有多大可能完全取决于您期望的值。

答案 6 :(得分:0)

我通常会做这样的事情来减少参数:

您的链接:

http://example.com/script.php?param1=value1&param2=value2&param3=value3&param4=value4&param5=value5

我的最爱:

http://example.com/script.php?params=value1,value2,value3,value4,value5

或     http://example.com/script.php?params=value1|value2|value3|value4|value5