3

返されたオブジェクトをファイルに保存して、後でダウンロードして確認することを計画しています。わかりやすくするために、私は外部の 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

4 に答える 4

6

オブジェクトは、PHP のserialize()関数でシリアル化してファイルに保存できます。必要に応じて、後で unserialize()再度使用することができます。

$stringData = serialize($singlerecord);

豆知識: これは、オブジェクトをファイルにキャッシュする 1 つの方法です。

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

于 2012-11-06T21:32:51.677 に答える
2

上で述べたように、serialize()を使用できますが、質問に答えるには:

print_r()をreviewLater.txtに入れるにはどうすればよいですか?

の2番目のパラメータprint_r()をtrueに設定すると、出力の文字列が作成され、そのように操作できます:)

于 2012-11-06T21:34:01.990 に答える
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を参照してください。

于 2012-11-06T21:36:01.767 に答える
0

後でプログラムで使用するためにデータをシリアル化する手段についての質問が与えられたので、人間が読める出力だけに関心がある場合は、fwrite($fh, var_export($singlerecord, true));人間が読める表現を文字列出力として印刷するために使用できることに言及します。

于 2012-11-06T21:36:41.613 に答える