php 超链接里的参数如何传递数组
例如:$names=array("11","22","33");$url="localhost/m/index.php?names=".$names这样不对呀!!!求正解...
例如:$names = array("11","22","33");
$url="localhost/m/index.php?names=".$names这样不对呀!!!求正解!! 展开
$url="localhost/m/index.php?names=".$names这样不对呀!!!求正解!! 展开
展开全部
答:url传参不支持数组.
方法1: 把数组遍历出来,组成键值对传过去在接收.
方法2:把数组序列化,接收后在反转.
示例:$arr = array('1','2','3');
$str = base64_encode(serialize($arr));//此时数组已经转换为字符串
$a = unserialize(base64_decode($str));
print_r($a);
方法1: 把数组遍历出来,组成键值对传过去在接收.
方法2:把数组序列化,接收后在反转.
示例:$arr = array('1','2','3');
$str = base64_encode(serialize($arr));//此时数组已经转换为字符串
$a = unserialize(base64_decode($str));
print_r($a);
更多追问追答
追问
方法一 肯定不行 因为我有几千个数据要穿 组装成超链接的话 会溢出的 因为GET有字符限制
方法2:我试过了 但是总是还原不过来! 怎么能还原出来呀! 传的数据是中文!
我想 你既然能说出方法2 肯定有办法还原中文的 请一定要教教我!
追答
老兄,你都知道了url传参有长度限制,那你几千个数据应该是溢出了吧
建议搞post提交吧.
因为 base64_encode()这个函数可以把汉字转化的 base64_decode() 这个函数在还原.
.思路是 数组->序列化->base64转化->base64反转->反序列化->数组
用URL传值的时候有限制 但是这个限制应该是URL本身的限制 是从"http://"开始到整个URL结束的长度不能超过2048 而超过1024的时候安全性就无法保证了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
和普通的参数一样传递即可,获取后直接是传之前一样的数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询