デバッグするときに、POST・GETで送信したデータやリクエストヘッダーを確認したいときがあります。テキストファイルに書き出しておけると便利でしょう。
こういうときに使えるコードを載せておきます。
サンプルコード
phpファイルを作成し、以下のコードをコピー・アンド・ペーストします。Webサーバーにアップロードすれば完了です。
<?php
// ログ保存ファイル名
define("TXTFILE", "log.txt");
// ファイルを追記モードでオープン
$fh = fopen(TXTFILE, "a+");
//ヘッダーをすべて取得して、配列として取得
$str = print_r(getallheaders(), true);//print_r関数は、第2引数んいtrueを指定すると、内容を返すことができる
// ファイルに追記する
fputs($fh, date("Y-m-d H:i:s") . ' ' . $str . "\n");
// WEBページにも表示しておく
echo ($str);
// POSTされたデータをすべて取得して、配列として取得
$str = print_r($_POST, true);
// ファイルに追記する
fputs($fh, date("Y-m-d H:i:s") . ' ' . $str . "\n");
// GETされたデータをすべて取得して、配列として取得
$str = print_r($_GET, true);
// ファイルに追記する
fputs($fh, date("Y-m-d H:i:s") . ' ' . $str . "\n");
// WEBページにも表示しておく
echo ($str);
// ファイルを閉じる
fclose($fh);
// var_dump(file_get_contents(TXTFILE));
?>
あとはそのphpにPOSTしてみると、こんな感じで、POSTされたデータとRequestヘッダーがテキストファイルに記録されます。
2020-12-10 12:44:24 Array
(
[Content-Type] => application/x-www-form-urlencoded
[Host] => 192.168.1.4
[Content-Length] => 13
[Cache-Control] => no-cache
)
2020-12-10 12:44:24 Array
(
[a] => 1234
[b] => 5678
)
2020-12-10 12:44:24 Array
(
)
ログを出力するテキストファイルは、phpを配置したディレクトリに作成されます。GETでもヘッダーは記録されますので、ブラウザでアクセスするだけでもログが追加されていきます。
もちろん、ログファイルが作成されるディレクトリは、Webサーバーから書き込めるように、書き込み権限を設定しておく必要がありますので、お忘れなく。
# chmod -R 777 test //全ユーザーからの全権限(書き込み含む)を許可
コメント