概要
日本語でファイル名を保存する時に、WindowsとLinuxで文字コードを切り替える処理が必要だったので調べました。
判別方法
その1
function isWindows(){
$result = (substr(PHP_OS,0,3) == 'WIN');
return $result;
}
その2
function isWindows() {
return PHP_OS === 'WIN32' || PHP_OS === 'WINNT';
}
その3
function isWindows(){
return defined('PHP_WINDOWS_VERSION_MAJOR');
}
文字コードの変換
if ($this->isWindows()) {
// windowのファイル名(sjis)を、utf-8に変換する
$fname = mb_convert_encoding($fname, 'utf-8', 'sjis-win');
}