公開日: 2008年12月25日(Thu)
PHPは、(当然ながら)動かすサーバの環境によって動作が変わる。今日のメモは、サーバ環境と言っても、とりわけOSを見分ける方法。
OSによって動作が変わるのは、要するに UNIX系OSか、非UNIX(Windows)か、というのが問題になる。これは、パスのルールやOSのコマンド関連が全然違うからだ。
$_ENV などの環境変数から判断することもできるが、よりダイレクトで確実な方法として、realpath() を使ったらどうだろう。
<?php
if( realpath('/') == '/' ){
echo( 'UNIX系' );
}else{
echo( 'Windows' );
}
?>
realpath() は、与えたパスにファイルもディレクトリも存在しない場合に false を返すが、'/' は必ず存在するはず。UNIX系のOSでは、ルートディレクトリは必ず '/' なのに対し、Windowsではボリューム文字が入って 'C:\' のようになる。
こんな方法で分岐すれば、OS(パス)依存の問題は回避できるのではないだろうか。
あ。メリークリスマス。
公開日: 2008年12月25日(Thu)