对于错误日志记录,我想将一个对象作为字符串保存在我的数据库中。我不想使用序列化,因为这会触发__sleep()
- 方法。那么是否有另一种方法可以将对象保存为字符串而不使用serialize()
?
问问题
211 次
4 回答
2
class Foo {
public function __toString() {
return "Hooray";
}
}
echo new Foo;
甚至会
echo var_export(new Foo, true);
于 2012-07-24T09:37:53.647 回答
2
你可以这样做:
ob_start();
var_dump($x);
ob_get_contents();
于 2012-07-24T09:38:04.443 回答
1
你可以试试这个
$string = print_r($x, true);
要保存$string
在数据库中,您可以压缩字符串:
$string = gzcompress($string);
解压缩和打印$string
使用:
echo '<pre>'.gzuncompress($string).'</pre>';
于 2012-07-25T09:27:26.987 回答
0
另一个解决方案可能是json_encode
-function ( docu )。
编辑:它的好处是,如果您必须自动分析日志文件,您可以使用几乎任何编程语言轻松解析它;-)
于 2012-07-24T09:42:51.210 回答