人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

前回の質問の続きです。
http://q.hatena.ne.jp/1302708059
ファイル出力し$dataの中は見ることができたのですが、今度は$structureの中を見たいのですが方法がわかりません。
構造がわからない配列をブラウザ出力のprint_r();みたいに展開できないものでしょうか?
よろしくお願いします。


<?php
require_once "Mail/mimeDecode.php";
$data = file_get_contents("php://stdin");

// メールをデコードする
$decoder = new Mail_mimeDecode($data);

$structure = $decoder->decode(array(
'include_bodies'=> true,
'decode_bodies'=> true,
'decode_headers'=> true,
));
?>

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:PHP Structure いもの デコード ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● あすか
●5ポイント

以下のようにしてはいかがでしょう。


<?php
ob_start();
var_dump($structure);
$outstr = ob_get_contents();
ob_end_clean();
file_put_contents('php://stdout', $outstr);
?>
◎質問者からの返答

すみません。

file_put_contents('php://stdout', $outstr);

の部分が良くわからないのですが、

'php://stdout'

を指定するとどういう動きになるのですか?


教えていただいたコードを関数にし、$structureを引数に渡し動かしてみますが何もおきません。

よろしくお願いします。


2 ● pretaroe
●5ポイント

var_dumpを使ってみては?

http://php.plus-server.net/function.var-dump.html

◎質問者からの返答

var_dumpをどのように使えばいいのですか?

すいません。

いままで他の回答も含め、ご紹介いただいた関数はあらかたわかります。

しかし、どうやれば吐き出せるのか?イメージがわきません。

どなたか、その辺も含めよろしくお願いします。


3 ● bayan
●70ポイント ベストアンサー

print_r() は、第二引数に true をセットすると、

出力しないで結果を取得できます。


$dataの内容をファイル出力できたのであれば、

file_put_contents() の第1引数にそのファイルのパスを

指定して、そこに書き込めると思います。


<?php
require_once "Mail/mimeDecode.php";
$data = file_get_contents("php://stdin");

// メールをデコードする
$decoder = new Mail_mimeDecode($data);

$structure = $decoder->decode(array(
  'include_bodies'=> true,
  'decode_bodies' => true,
  'decode_headers'=> true,
));

$outstr = print_r($structure, true);
file_put_contents('そのファイルのパス', $outstr);
?>

1番の方の回答も、file_put_contents() に 'php://stdout' じゃなくて、

出力したいファイルのパスを渡せば、目的は達成できると思います。


'php://stdout' は標準出力なので、file_put_contents('php://stdout', $outstr); は

echo $outstr; と同じことですかね。

メール振り分け時は行き場がなくて捨てられちゃう?

(サーバーのmaillogには出てるかもしれませんが)


コマンドラインから実行すれば画面に出てくるでしょう。


例えば $data の内容をファイルに保存しておき、サーバーに ssh 等でログインして、

以下を実行するとか。

cat '$dataの内容を保存したファイル名' | php postmail.php




http://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E3%82%B9%E3%83%8...

http://php.net/manual/ja/wrappers.php.php

◎質問者からの返答

できました!

かゆい所に手が届く回答でとても助かりました。

バックグラウンドで稼働するプログラムの変数の中を見るのはずっとずっと以前からの疑問でした。

これからのデバック作業がとても楽になります。

ありがとうございました。

http://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E3%82%B9%E3%83%8...

勉強になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ