「デバッグ」タグアーカイブ

実行時間の測定 (PHP)

処理にかかる時間を計りたいときは以下のようにします。
どれくらい正確かは不明ですが、かなり細かく計測できます。

$start = microtime(TRUE);
//いろいろな処理
$stop = microtime(TRUE);
print ($stop-$start);

分単位または数十秒単位ならtime();でも可能です。

2015/1/28修正
microtime()の引数にTRUEを指定しました。デフォルトではFALSEが指定され、この場合、文字列として返されるため、引き算ができません。

getやpostで受け取った値を表示 (PHP)

formからpostまたはgetで送られた値をデバッグ中などに参照したいときは<pre>タグとprint_rを使うと見やすく表示されます。

<?php
print"<pre>";
print_r($_POST);
print"</pre>";
?>

とすれば、

Array
(
[name] => 名前
[mail] => メール
)

などと表示されます。getやpostのデータだけでなく、配列を表示する際にも便利です。ネスト(入れ子)された状態でもすべて表示されます。

私はだれ?(スクリプト自身の名前) (PHP)

phpスクリプト自身の名前は$_SERVER[‘PHP_SELF’]に入っています。デバッグなどでは簡単に使うことができますが、クロスサイトスクリプティング(XSS)脆弱性があるので以下のようにするのが望ましいです。

$_SERVER['PHP_SELF']  = htmlspecialchars($_SERVER['PHP_SELF']);

しかし、CGI版でなければ$_SERVER [‘SCRIPT_NAME’]が推奨らしいです。
ほかにも$_SERVER[] には脆弱性があるようなので注意しましょう。
ディレクトリ部分を除いたファイル名のみを表示する場合はbasename()を使用します。