【php】コマンドラインでの実行かどうか判別する
問題
phpでプログラムを書きまして、コマンドラインからphp ファイル名
で実行したり、ブラウザからhttp://example.com/ファイル名
で実行結果を見たりしてるのですが、どうやって実行されたかに応じて実行結果の出力形式を変えたいです。
答え
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>'; }
コメント