LoginSignup
1
2

More than 5 years have passed since last update.

PHP関連の覚書

Last updated at Posted at 2018-04-24

phpが400番、500番のエラー吐いた時(INTERNAL SERVER ERRORとか)に、Apacheのエラーログを見て原因をたどっていく方法【CentOS7】

これまじで便利なのでおすすめ。

Apacheのエラーログは、
/etc/httpd/logs以下にあります(デフォルト設定)

基本的にエラーログは、error_log [-20180521] ※日付があったりなかったり
って形で保存されてますので、lessとかtailを使って閲覧します。

私のように、https接続を行っている場合、https通信に関してのerror_logは
ssl_error_logファイルに書き込まれており、error_logには残らないのでその点だけ注意です!

phpで変数の中身をファイルに出力(05/24)

int file_put_contents ( string $filename , mixed $data);

が便利。

ただし、配列を出力する場合、これの$dataに配列を入れても
Array
とだけ出力されて肝心のファイルの中身が表示されない。

print_r()関数を使うと、返り値としてわかりやすい形式が返るので、

$dump = print_r( $array , TRUE);
$file_put_contents('hogefile', $dump);

とすれば、

Array
(
    [events] => Array
        (
            [0] => Array
                (
                    [type] => message
                    [replyToken] => xxxxxxxx
                    [source] => Array
                        (
                            [userId] => xxxxxxxx
                            [type] => user
                        )

                    [timestamp] => xxxxxxxxx
                    [message] => Array
                        (
                            [type] => text
                            [id] => xxxxxxx
                            [text] => hoge
                        )

                )
        )
)

みたいな見慣れた形式の出力が指定したhogefileに書き込まれているはず。
ちなみに、hogefileが存在しない場合勝手に作成してくれます。

参考元

型チェック

使い方は簡単。gettype()関数を使うだけ。

echo gettype($ony_total[0]);

-> string

preg_matchの第三引数の型を確かめるときに使用。デバッグに役立つ。
参考:公式ドキュメント

phpの日付

date()関数を使う。文字列を中に入れて


echo $date("m月d日");

-> 04月24日

echo $date("n月j日");

-> 4月24日

ご覧の通り、0を挿入して2桁にしてくれるパターンと、そのまま出力してくれるパターンがあります。

参考にしたのはこれ:phpの日付についての記事
正直これ見たら十分

phpの正規表現(04/24)


$text = "5回";
preg_match("/^[0-9]+/", $text, $array);
echo $array[0];

-> 5

ポイント

・第三引数には、配列が返る。$array[0]には、マッチした分の文字列が入る。
第三引数の$arrayは、事前に宣言されてなくてもよい
・文字列型で返るので、数字を抽出する場合は(int)によるキャストが必要。
参考:公式ドキュメント

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2