如何序列化资源?
一个例子:
<?php
if ($_fileHandle = fopen('file.txt', 'a')) {
echo "fopen success <br />";
} else {
echo "fopen failed <br />";
}
var_dump($_fileHandle);//displays "resource(3, stream)"
$serializedResource = serialize($_fileHandle);
$unserializedResource = unserialize($serializedResource);
var_dump($unserializedResource);//displays "int 0"
?>如您所见,如文档所述,如果序列化/非序列化,则fopen返回的资源将丢失:
序列化()处理所有类型,但资源类型除外。
我希望能够序列化一个资源,以便在会话中存储它,使其在每个页面中都可用。也许还有别的办法?
发布于 2013-03-25 16:36:14
资源不是用于序列化的,并且不能通过会话变量在页面加载中持久化。它们基本上只是对某些系统资源的处理。PHP将在脚本执行结束时自动取消这些资源句柄的分配。
尽管如此,您当然可以在会话中放置您正在使用的文件路径,并在随后的页面加载上获得一个新的句柄。
https://stackoverflow.com/questions/15620012
复制相似问题