1

对于错误日志记录,我想将一个对象作为字符串保存在我的数据库中。我不想使用序列化,因为这会触发__sleep()- 方法。那么是否有另一种方法可以将对象保存为字符串而不使用serialize()

4

4 回答 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 回答