Ⅰ url-thinkphp如何获取链接参数求大神支招
在ThinkPHP框架中,获取链接参数可以通过以下几种方法实现:
使用$_GET超全局数组:
- 方法:如果你通过URL传递参数,如http://example.com/index.php?url=http%3A%2F%2Fwww..com,你可以使用$_GET['url']来获取传递的URL参数。但注意,此时直接获取可能只会得到部分字符串,这是因为URL编码和解码的问题。
- 解决方案:确保传递的URL参数经过正确的URL编码,并在接收端使用urldecode函数解码。
使用ThinkPHP的I函数:
- 方法:ThinkPHP提供了一个便捷的I函数来获取请求参数,你可以使用$url = I来获取URL参数。
- 注意事项:同样需要注意URL编码和解码的问题。
确保URL完整性:
- 方法:在构建传递URL的链接时,确保使用urlencode对URL进行编码,如?url=urlencode。
- 避免格式问题:避免使用如/a/b等格式传递参数,这可能导致参数解析不完整。
使用parse_url和$_SERVER['HTTP_REFERER']:
- 方法:在某些情况下,你可能需要分析HTTP请求的其他部分来获取完整的URL。可以使用parse_url来分析引用页面的URL。但注意,$_SERVER['HTTP_REFERER']可能为空或不可信,因为它是由客户端浏览器提供的。
处理特殊字符:
- 问题:在URL中包含特殊字符时,可能会导致解析问题。
- 解决方案:在传递URL前,可以使用字符串替换函数将特殊字符替换为其他不易引起解析问题的字符,然后在接收端再替换回来。例如,url=str_replace。
综上所述,获取链接参数时,需要注意URL的编码和解码、参数的传递格式以及特殊字符的处理。通过合理使用ThinkPHP提供的函数和PHP内置函数,可以准确地获取和处理URL参数。
Ⅱ php 怎么对url的参数串进行压缩和解压缩
如果参数名和值全部是已知的,那么做一个映射表就可以了。
如果参数的值涉及用户提交的内容,对于过长的内容,最好使用POST,并开启Gzip压缩。
关于URL的长度:
1,普通用户很少通过修改url来实现跳转
2,太短的参数名称就很难理解含义,比如content如果缩短成c,你知道这代表什么意思么?
3,如果说为了便于保存和分享,那么可以考虑short url的处理方式
4,url的长度对性能的影响微乎其微,除非是超长文本,那就是程序设计的问题了
5,如果说刻意追求极短的url,还要进行压缩和解压缩步骤,真的有点画蛇添足了