忍者ブログ
私のコンピュータTips集 というかメモです。プログラムやコンピュータの知識、技術全般です。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHPで、ページがリクエストされ、PHPスクリプトが動作してから、応答を返すまでの処理時間を計算する。(ミリ秒単位で計算。)サーバまでの到達時間やクライアントまでの到達時間は除く。
全てのページに共通して埋め込んでおけば、どのページが遅いか簡単にわかるので、大変役に立つ。

概略:
 開始時に microtime(TRUE)で float値 (sec.msec)を保持。
 終了時も同様に取得し、差を計算。これだけ。
 【注意】PHPマニュアル見ればわかるけど、「microtime関数は、gettimeofday() システムコールをサポートする オペレーティングシステムでのみ使用できる」です。

//----------
<?php
//開始
$time_start = microtime(TRUE);

//
//何かの処理
//

//終了
$time_end = microtime(TRUE);
//終了-開始
$time = $time_end - $time_start;

//表示してみる
printf("%040.25f</br>", $time_start);
printf("%040.25f</br>", $time_end);
printf("%040.25f</br>", $time);
?>
//----------

 

PR


やりたいことは以下。
・メール受信→メール内容をPHPで処理

(1) .forward の登録
 メールを転送するのに使うものだが、パイプによりプログラムとかに内容を渡せる。
 (例)
  "|/usr/bin/php /www/html/hoge.php"

 これでメール受信したとき、phpコマンドにより、hoge.phpが実行される。

(2) hoge.php の先頭に #!/usr/bin/php -q と書く
 (例)
  #!/usr/bin/php -q
  <?php
  ...
  ?>

 これでPHPコマンドラインインターフェースで実行される。"-q" でHTTPヘッダを抑制。
 
(3) PHPで受信メール内容を読み取る方法
 標準入力で渡されるので、標準入力の読取と同じ。
 (例)
  if(($stdin=fopen("php://stdin",'r') )!==FALSE ) {
    while( !feof($stdin) ) {
      $line = fgets($stdin, 4096);
    }
    fclose($stdin);
  }

※メールを送りつけて動作を確認するも、動く形跡なし。。
調べたところ、.forwardのパイプ渡しで実行できるコマンドが "smrsh"という
やつで制限されているようだ。
環境によって設定場所はことなるようだが、うちは、以下でできた
/etc/smrsh のディレクトリにphpのコマンドを置く(シンボリックリンクで良い)
(例)
#cd /etc/smrsh
#ln -s /usr/bin/php

 

カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
最新TB
プロフィール
HN:
T.K
性別:
非公開
バーコード
ブログ内検索
アクセス解析
アクセス解析
忍者ブログ [PR]