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

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

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

如果每次调用$string就做一次数据库查询,显得不那么有效率.
是否有比较好的解决思路呢?
望赐教
...全文
191 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
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里面是最合理的。
有理想的草根 2008-11-28
  • 打赏
  • 举报
回复
建议使用先将字符串进行序列化,再将序列化后的串进行压缩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.也太长了,设计上可能有问题

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧