如何使用 PHP 在内存中创建共享对象?
我的网站中有一个块,显示数据库表中最新的 20 项。
现在我需要创建一个数组或对象来驻留在内存中,然后为浏览我网站的所有用户访问它? 我可以使用 PHP 来做吗?
感谢您的帮助
I have a block in my website that shows the latest 20 items in a database table.
now I need to create an array or object to reside in memory and then to access it for all users who browse my website?
Can I do it using PHP?
Thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用的是 Windows 服务器,请查看 APC 或 memcache 或 WinCache 等选项。这些都提供了缓存数据/对象的选项。
如果这是要显示数据库上的最新项目,则每次向该数据库添加内容时都需要更新它,否则它将与数据库不一致
Look at options like APC or memcache, or WinCache if you're on a Windows server. These all provide options to cache data/objects.
If this is to show the latest items on a database, you'd need to update it every time something is added to that database, otherwise it won't be consistent with the database
感谢您的贡献。
我找到了一种方法。
替代 PHP 缓存 (APC) 是一个免费且开放的 PHP 操作码缓存。它的目标是提供缓存框架。
尝试此代码并刷新页面或使用不同的浏览器打开它
Thanks for your contributions.
i found a way to do it.
The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provide framework for caching.
try this code and refresh the page or open it using different browsers
PHP 是无状态的,因此不可能在不同会话之间轻松共享变量。
你可以通过一个技巧来做到这一点。
创建所有这些值的数组,
现在序列化数组
$sharedObj = serialize ($originalArray) ;
您可以在
$sharedObject
中获取$originalArray
的 Serialize 变量将
$sharedObject
写入文本文件,您可以读取该文本文件并反序列化该数据(从文本文件中获取),并且可以获得相同的数组。如果您仍有问题,请告诉我。
PHP is stateless so it is not possible to easily to share the variable between the different session.
You can do this by one trick.
Create array of all these value,
Now serialize the array
$sharedObj = serialize ($originalArray) ;
you can get Serialize variable of your
$originalArray
in$sharedObject
Write the
$sharedObject
into a text file and you can read the text file and unserialize that data(which you are getting from the text file) and you can get the same array.Please let me know if you still have problem.