求:超长字符变量解决办法

laidezhong 2008-11-28 04:52:17
现有一字符串 $string,长度在1K到100K;
这个$string需要在多个页面调用,且每客户的$string不同.

本打算放在cookie,结果cookie长度有限制,4k.

如果每次调用$string就做一次数据库查询,显得不那么有效率.
是否有比较好的解决思路呢?
望赐教
...全文
109 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
knight0450 2008-11-30
这么大应该使用压缩,cookie做法明显不好,cookie总数量可是有限制的
回复
helloyou0 2008-11-30
cookie内容每次会随网页和请求在服务端和浏览器间传递, 不宜搞太大
回复
an9ryfr09 2008-11-30
放在多个cookie里面,并不复杂。一个域最多可以有20个cookie,每个大小不得超过4k,你切割一下,然后放到不同的cookie里面。

放session的话,如果所有用户的这个字符串都相同的还好说,如果每个用户的字符串都不同,那太浪费服务器资源了。
回复
alexdany 2008-11-29
写文件,再读文件
回复
jiang_jiajia10 2008-11-29
session多大都没关系
回复
penglewen 2008-11-29
[Quote=引用 9 楼 froole 的回复:]
引用 7 楼 penglewen 的回复:
如果你的$string只是简单的传递一下,可以用md5()处理一下再放cookie里面,因为md5后都是32位的。节省了很多空间。。。

如果$string要用的话,可以借鉴md5()的方法,自己写个加密与解密的方法,主要目的是为了节省空间。。


汗....
[/Quote]
其实就是指用序列化,因为对php里面的序列化用得少一点。呵呵。。。。见笑了。
回复
phpboy 2008-11-29
直接将$string写到网页里面,用的时候直接调用网页,应该可以达到一定效果
回复
helloyou0 2008-11-29
要看怎么用。。。。
回复
海诗美妆 2008-11-28
[Quote=引用 7 楼 penglewen 的回复:]
如果你的$string只是简单的传递一下,可以用md5()处理一下再放cookie里面,因为md5后都是32位的。节省了很多空间。。。

如果$string要用的话,可以借鉴md5()的方法,自己写个加密与解密的方法,主要目的是为了节省空间。。
[/Quote]

汗....
回复
Zijian_Zhang 2008-11-28
用gz进行压缩,或者直接放入SESSION.
回复
penglewen 2008-11-28
如果你的$string只是简单的传递一下,可以用md5()处理一下再放cookie里面,因为md5后都是32位的。节省了很多空间。。。

如果$string要用的话,可以借鉴md5()的方法,自己写个加密与解密的方法,主要目的是为了节省空间。。
回复
海诗美妆 2008-11-28
[Quote=引用 4 楼 fxs_2008 的回复:]
放在session里,对长度没有限制
[/Quote]

针对于每个用户的缓存,
方在session里面是最合理的。
回复
建议使用先将字符串进行序列化,再将序列化后的串进行压缩gzcompress()
读取时,先进行反压缩再进行反序列。

以前我使用过这种方式,将40K的文件变成5.6K。

至于再如何处理,就得看你想如何存了。是想放到C还是S里。
回复
fxs_2008 2008-11-28
放在session里,对长度没有限制
回复
vvkl 2008-11-28
放在n个文件里,cookie里保存文件名
回复
laidezhong 2008-11-28
[Quote=引用 1 楼 onlythree 的回复:]
1.放在n个cookie里,取出来连接一下
2.放在memcache里
3.也太长了,设计上可能有问题
[/Quote]
1 不错的思路,不过好复杂 -_-#
2 服务器不支持 -_-!
3 这个字符串是包含客户端电脑安装的字体列表.我机器上字体名称以逗号连接后也有26K,没办法. @_@...
回复
onlythree 2008-11-28
1.放在n个cookie里,取出来连接一下
2.放在memcache里
3.也太长了,设计上可能有问题
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-11-28 04:52
社区公告
暂无公告