对于错误记录我想将对象保存为字符串在我的数据库中。我不想使用序列化,因为这会触发__sleep()
-方法。那么有没有另一种方法来保存对象为字符串而不使用serialize()
?保存对象为字符串,而不使用序列化
回答
你可以试试这个
$string = print_r($x, true);
要保存$string
在DATABSE你可以压缩字符串:
$string = gzcompress($string);
要解压缩并打印$string
使用:
echo '<pre>'.gzuncompress($string).'</pre>';
class Foo {
public function __toString() {
return "Hooray";
}
}
echo new Foo;
甚至
echo var_export(new Foo, true);
这将返回:致命错误:嵌套级别太深 - 递归依赖性? – arnoudhgz 2012-07-24 09:51:54
@arnoudhgz对不起,但是这应该告诉我什么?显然你有循环依赖。根据你所说的“this”中的哪一个,你必须自己解决它们。 – KingCrunch 2012-07-24 09:55:49
这是真的,但我不能在我的情况下使用你的解决方案。无论如何感谢您的帮助。 – arnoudhgz 2012-07-24 09:59:31
,你可以这样:
ob_start();
var_dump($x);
ob_get_contents();
- 1. 将datacontract序列化对象保存为字符串以保存在sql db中
- 2. 将对象序列化为字符串
- 3. 将对象序列化为字符串
- 4. Redis的对象保存为字符串,而不是数组
- 5. 保存对象/序列化
- 6. 序列化,保存对象
- 7. 使用.NET将对象序列化为XML字符串
- 8. C#使用Newtonsoft.Json将JSON字符串反序列化为对象
- 9. 使用UTF-8将Java对象序列化为字符串
- 10. 使用lift-json将scala对象序列化为JSon字符串
- 11. 使用JSON.NET序列化对象时Int转换为字符串
- 12. 将json字符串反序列化为使用Newtonsoft的对象
- 13. 使用序列化将对象[]数组转换为字符串[]
- 14. 将内存流对象序列化为字符串
- 15. Android将字符串反序列化为JSONObject而不使用库
- 16. 使用JSON.NET反序列化和序列化字典<字符串,对象>
- 17. JSON将自定义C#结构序列化为字符串,而不是对象
- 18. 使字符串属性不可读对象序列化
- 19. 使用类对象作为字符串而不使用str()
- 20. JSON使用json字符串将对象字符串化为值
- 21. 序列化/反序列化对象到/从分隔字符串
- 22. DataContractSerializer - 将字符串序列化为值而不是引用
- 23. 如何序列化字典<字符串,对象>为JavaScript?
- 24. 使用xsd.exe反序列化 - 如何反序列化为对象,而不是DataSet?
- 25. 将LINQ对象序列化为JSON字符串 - 巨大的字符串
- 26. 将Nokogiri XML对象转换为字符串而不使用.text
- 27. gwt将对象从字符串序列化并反序列化为字符串(仅客户端)
- 28. Rails保存序列化对象失败?
- 29. 将JSON字符串反序列化为自定义Java对象
- 30. 将JSON字符串反序列化为VB.net对象
谢谢,这个解决方案正是我所需要的。它效果很好。 – arnoudhgz 2012-07-25 09:36:54