開発環境とサーバ環境とでOSの違いがでて、処理がうまくいかない場合があります。 そんな場合について、OS判定をしてそれぞれの処理を実行していく方法について考えていきます。11月23日記事

目次





PHP_OSという定義済み定数を利用する。

表示させたい場合は

echo PHP_OS;

具体的な値は

  1. CYGWIN_NT-5.1
  2. Darwin
  3. FreeBSD
  4. HP-UX
  5. IRIX64
  6. Linux
  7. NetBSD
  8. OpenBSD
  9. SunOS
  10. Unix
  11. WIN32
  12. WINNT
  13. Windows があります。windowsは3種類あるので、文字を切り取るsubstr関数と文字を大文字にする関数を使って最初の3文字を切り抜き、判定していく必要があると思います。

コード

<?php
echo PHP_OS;
echo "<br>";
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    //開発環境など
	echo "Windowsだよ";
} elseif(PHP_OS == "Linux") {
	//サーバ環境など
    echo "linuxだよ";
} else{
	//エラーを吐かせる処理など
	echo "Windowsでもlinuxでもない何かだよ";
}
?>



まとめ

PHPではだいぶんOSの違いを吸収できるようになってきてはいますが、それでも何かあった時のためのために記述しておきたいと思います。

以上

最終更新:2015年11月23日 00:17