我想从冗长且易于理解的查询字符串中创建一个漂亮的查询字符串
例如
http://www.domain.com/play.php?a=10&b=20&c=30
首先,这是多长的查询字符串,其次是可以理解a,b& c的值。
我想要的是php函数,它将整个查询字符串转换为a=10&b=20&c=30
一些文本,如f4cdret4
然后我传递相同的
http://www.domain.com/play.php?q=f4cdret4
并在 play.php 中我再次将f4cdret4
转换回a=10&b=20&c=30
我试图找到类似的东西,但很多天都没有成功。
由于
答案 0 :(得分:1)
从可用性的角度来看,这是一个不好的想法。我作为用户会对你很生气。我建议你阅读URL Design。
此外,听起来你想保留用户的东西。如果是这样,那么不安全如果您执行类似
的操作$url .= '?q=' . base64_encode(http_build_query($parms));
答案 1 :(得分:1)
您可以使用一些字符串转换函数来隐藏真实的查询字符串。以下是我使用bin2hex
和pack
<?php
$str = 'a=10&b=5&c=20&d=6';
$encoded = bin2hex($str);
echo $encoded;
echo "\n";
echo pack("H*",$encoded);
?>
example
您可以使用bin2hex
对其进行编码,并使用pack
对其进行解码。
答案 2 :(得分:0)
一般来说,您不希望将您的网址与用户的任何意义分离,除非您明显将其缩短以用于Twitter帖子等字符限制设置。
也就是说,有几种方法可以实现这一点。你可以:
使用htaccess制作伪目录(a = 10&amp; b = 20&amp; c = 30变为“mydomain.com/q/10/20/30”)
RewriteEngine On
RewriteRule /q/(.*)/(.*)/(.*)$ /page/play.php?a=$1&b=$2&c=$3