php如何缩短字符串?

时间:2016-11-04 10:56:35

标签: php function decode encode

我的问题是网址中的参数很少,如

mydomain.com/page.php?id=xe455144s&t=nameofpage&s=yt

现在我想转换这部分网址 -

 page.php?id=xe455144s&t=nameofpage&s=yt

成为短/编码和单行的网址,如

 mydomain.com/kid55e4s554e4s5   [this is what i imagined]

我知道如何使用.htaccess进行网址重写,但我不知道如何制作网址的简短数字或字母数字字符串。

我需要转换回正常的字符串以检索网址的值。

我知道base64_encode / decode但是这个函数创建了大量网址,我需要一个简短的网址。

php库中是否存在任何函数?

目的 - 我想为我的网站制作简短的URL以用于seo目的,并且还想在那些应该向所有人隐藏的网址中设置一些参数

请帮忙,

1 个答案:

答案 0 :(得分:0)

您可以在网址格式WIKI Base64 RFC4648

中使用base64编码

例如:

 class Base64Url
 {
    /**
     * It`s base64_encode, but used
     *   - instead +
     *   _ instead /
     * and it does not contain =
     *
     * @param string $input
     * @return string
     */
    public static function encode($input)
    {
        $str = strtr(base64_encode($input), '+/', '-_');
        $str = str_replace('=', '', $str);

        return $str;
    }

    /**
     * @param string $input
     * @return string
     */
    public static function decode($input)
    {
        return base64_decode(strtr($input, '-_', '+/'));
    }
}

但使用任何编码方法都不会缩短您的网址。

如果我们需要生成短网址 - 您可以创建" map"。 例如,您生成哈希" Wqwr42S"并写入你的存储空间" Wqwe42S它是/ bla-bla-bla"