PHP – ログファイルを書く

ログファイルを書く

今回PHPページからリモートのデ-タベースの読み込みの不具合がありました。
修正をしようと思いましたが、不具合の履歴がないため、思いの他苦労しました。
そこで、修正ついでに、エラーや失敗のログを書くルーチンを作成しました。
PHPでは、ファイルの書き出しが意外と面倒です。
特にフォルダの指定が面倒だったので、それを書いておきます。
ログの書き出しには、error_log()というPHPの関数を使用します。
何も指定しないと、PHPにエラーが起きた時この関数が、プログラムのあるフォルダに「error_log」というファイルを作成し、そこにエラーの内容が書かれます。
ここでは、引数3を指定して、フォルダとファイル名を指定し、自前のテキストを書き出すようにします。
フォルダの指定は、$_SERVER[‘DOCUMENT_ROOT’]を使って、必ずルートを指定します。
そうしないと、どこに書かれるか、分かりませんので注意が必要です。
特に相対ディレクトリはよく分かりませんので、興味のある方は、自身で試してみてください。
logフォルダを指定する場合は、$_SERVER[‘DOCUMENT_ROOT’] .’/log/log.txt’となります。
これにより、どのフォルダからも一つのログファイルに書き込むことができます。
mylog_s()では、頭にtime()を使って、ログの時刻を書き出しています。
error_log()関数は、ログファイルにテキストを追記していきますが、改行は自分で行う必要があります。
$message .= “\n”;


  function mylog_s($message){
    $ji = dtxt_s(time());
    $txt = $ji . " " . $message .= "\n";
    error_log($txt, 3, $_SERVER['DOCUMENT_ROOT'] .'/log.txt');
  }

ffftp phpファイルが文字化け

phpファイルは、ffftpを使ってサーバーにアップロードしています。
最初は、自分のPCの原本を修正して、アップするだけだったので、問題ありませんでしたが、今回はサーバーからダウンロードしたファイルを修正してアップロードしました。
ここでphpファイルがエラーを起こしました。調べてみるとファイルサイズがかなり大きくなっていました。
それをダウンロードして開いてみると、完全に文字化けを起こしていました。

ffftpの
接続>ホストの設定>文字コード>ホストの漢字コード
「無変換」を「UTF-8」にすることで、解決しました。

Comments are closed.