foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

PHP で OS 判別

今までライブラリを作って OS 判別していたが、自動判別できそう。

以前 OS 判別を $_SERVER[ 'windir' ] で処理していた。
失敗。

DIRECTORY_SEPARATOR

コレが存在する理由が最近やっと分かった。
今までは \\ から / へ変換すればいいだろう、としか思っていなかった。
ところが Windows では / をパラメータ オプションとして解釈してしまうコマンドがあるため、DIRECTORY_SEPARATOR を使う。
そして CakePHP といったフレームワークでは簡単にタイプできるように下記の定義をしている。

define(DS, DIRECTORY_SEPARATOR);

PATH_SEPARATOR

コレは存在自体知らなかった。
こちらはディレクトリではなく「パスとパス」を区切るための記号。
Windows は ; となり、
Linux は : となるアレです。