ファイル関係が面倒なので事あるごとにメールで送ってしまう。それ以外だとデータベースに接続してしまったほうが面倒がなくていいけど、それが面倒だったりする。
どのモードで動作しているかをサクっと返してくれるものがないらしい。
一般的にはテンポラリファイルを作って書き込み出来るかをチェックしたりするようだ。これはperl でも同じだけどエラー処理とか例外処理とかが面倒だ…。
PHP マニュアルによれば、CLI から実行していればcli を返すらしいが・・?
スポンサードリンク
結果
CLI から実行
php_sapi_name:cgi<br /> Script return:CGI END
Web から呼び出す
php_sapi_name:apache Script return:other END
あれ?
ちなみに、テストはCORESERVER で行った。CORESERVER は通常モジュール版で、.htaccess を設定することでCGI 版になる。が、どちらも同じ結果「apache」だった。うーん。
テストコード
<?php
/*
* t_getPhpMode
*
* the script check running mode,
* return CLI or CGI or null
*
* PHP4.2.0+
*
* Ver.0.01 2011.09.29 by casey.jp
*
*/
echo "<br />\nphp_sapi_name:";
echo php_sapi_name();
echo "<br />\nScript return:";
$tmp = checkPhpMode();
echo $tmp ? $tmp : "other";
echo "\nEND";
exit;
/*
* see also:
* http://www.php.net/manual/ja/function.php-sapi-name.php
*/
function checkPhpMode(){
$sapi_type = php_sapi_name();
$tmp = substr($sapi_type, 0, 3);
if($tmp == 'cgi'){
return 'CGI';
}elseif($tmp == 'cli'){
return "CLI";
}else{
return null;
}
}
?>


コメント