SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】コマンドラインでの実行かどうか判別する

問題

phpでプログラムを書きまして、コマンドラインからphp ファイル名で実行したり、ブラウザからhttp://example.com/ファイル名で実行結果を見たりしてるのですが、どうやって実行されたかに応じて実行結果の出力形式を変えたいです。

php-logo

答え

php_sapi_name()関数で、実行環境を教えてもらえる。

<?php echo php_sapi_name();

コマンドラインからだと ‘cli’。

Webサーバーと組み合わせて使っている場合だと、’apache2handler’, ‘cgi-fcgi’, ‘cgi’ など様々。

コマンドラインからかどうかの区別だけでよければ、以下のように書ける。

<?php
if (php_sapi_name() == 'cli') {
	//CLI版php
	echo '実行結果をテキストで返そうかな';
} else {
	//CLI版phpでない
	echo '<h1>実行結果</h1>';
	echo '<p>HTMLで返そうかな</p>';
}

関連するメモ

コメント