PHP将对象转换为字符串

时间:2012-11-06 21:31:34

标签: php string object

我打算将返回的对象保存到文件中,以便以后下载进行审核。 为了清楚起见,我正在使用外部API服务,并收集他们的数据,以便解析到另一个数据库。

这就是我所拥有的:

<?php
require('class.php');
$client = new connect2Them();
$logged_in = $client->login();
if(!$logged_in){
  echo "Not connected!"; die();
}

$records = $client->get_records();
if(count($records < 1){
  echo "No records found"; die();
}

$singlerecord = $records[0];
print_r($singlerecord);

?>

print_r()工作正常,我收到了非常大量的数据。我正在通过命令行执行所有这些操作,因此我想将其保存到文本文件中。

我在$ singlerecord下面添加了这个:

<?php
$myFile = "reviewLater.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $singlerecord;
fwrite($fh, $stringData);
fclose($fh);

?>

我从PHP得到这个错误: PHP警告:fwrite()要求参数2为字符串,对象在....中给出

如何将print_r()放入reviewLater.txt?

4 个答案:

答案 0 :(得分:6)

可以使用PHP的serialize()函数序列化对象并将其保存到文件中。之后,如果您愿意,可以unserialize()再次使用它们。

$stringData = serialize($singlerecord);

有趣的事实:这是将对象缓存到文件的一种方法。

参考:http://php.net/manual/en/function.serialize.php

答案 1 :(得分:2)

如上所述,您可以序列化(),但要回答您的问题:

  

如何将print_r()放入reviewLater.txt?

如果将print_r()的第二个参数设置为true,则会有一个输出字符串,您可以这样操作它:)

答案 2 :(得分:0)

如果您正在处理简单对象(例如,不是引用自身或自定义类的对象),您可以使用json_encode将对象编码为JSON,然后使用json_decode对其进行解码

请参阅http://php.net/manual/en/function.json-encode.phphttp://www.php.net/manual/en/function.json-decode.php

答案 3 :(得分:0)

由于已经给出了关于序列化数据以供以后编程使用的方法的问题,我将提到如果您只关心人类可读的输出,则可以使用fwrite($fh, var_export($singlerecord, true));来打印人类可读的表示形式字符串输出。