我打算将返回的对象保存到文件中,以便以后下载进行审核。 为了清楚起见,我正在使用外部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?
答案 0 :(得分:6)
可以使用PHP的serialize()
函数序列化对象并将其保存到文件中。之后,如果您愿意,可以unserialize()
再次使用它们。
$stringData = serialize($singlerecord);
有趣的事实:这是将对象缓存到文件的一种方法。
答案 1 :(得分:2)
如上所述,您可以序列化(),但要回答您的问题:
如何将print_r()放入reviewLater.txt?
如果将print_r()
的第二个参数设置为true,则会有一个输出字符串,您可以这样操作它:)
答案 2 :(得分:0)
如果您正在处理简单对象(例如,不是引用自身或自定义类的对象),您可以使用json_encode
将对象编码为JSON,然后使用json_decode
对其进行解码
请参阅http://php.net/manual/en/function.json-encode.php和http://www.php.net/manual/en/function.json-decode.php。
答案 3 :(得分:0)
由于已经给出了关于序列化数据以供以后编程使用的方法的问题,我将提到如果您只关心人类可读的输出,则可以使用fwrite($fh, var_export($singlerecord, true));
来打印人类可读的表示形式字符串输出。