【问题标题】:How can I shorten the URL query paramters?如何缩短 URL 查询参数?
【发布时间】:2010-10-23 02:56:03
【问题描述】:

我的脚本正在生成一个很长的 URL,如下所示,我想知道如何通过算法或技术缩短它?

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

我想把它缩短成这样: http://example.com/script.php?p=430x2920

如何在不将原始链接缓存到数据库的情况下做到这一点?

提前致谢。

【问题讨论】:

    标签: php friendly-url


    【解决方案1】:

    您总是可以只使用带有分隔符的单个参数,然后将其拆分回代码中。

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

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

    【讨论】:

    • 我认为 schooner 的建议对我有用,因为我将在电子邮件中发送这些链接,因此无法将它们存储在会话等中。我会尝试一下,谢谢。
    【解决方案2】:

    将静态值添加到$_SESSION[]

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您不想使用数据库来存储缩短(散列)URL 的查找表,那么您必须设计某种函数来将缩短的 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 只接受数字。

        【讨论】:

          【解决方案5】:
          • 使用RESTful接口,而不是一堆查询参数。

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

          【讨论】:

            【解决方案6】:

            找出所有可能的值,并提出一种编码/解码它们的双向算法。

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

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

            【讨论】:

              【解决方案7】:

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

              您的链接:

              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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2023-04-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-09-28
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多