8

まず、Mac OS X は私のネイティブ オペレーティング システムではありませんが、Ubuntu に慣れているので、ほとんどの部分で簡単に移行できました。

Unix ベースなので、この OS は大文字と小文字が区別されるという印象を受けましたが、file_exists()機能はそうではありません。

私のhtdocsファイルには、次の2つのファイルがあります。

test.php

MyFileWiThMiXeDCaSe.php

test.php には、次のコードがあります。

if(file_exists('myfilewithmixedcase.php')) {
  echo 'exists';
} else {
  echo 'doesnt exist';
}

// ouputs: exists

誰がどのように/なぜこれが起こっているのか知っていますか? このようなコードを Linux OS にデプロイすると、file_exists()false が返されるため、これが問題を引き起こしています。

ところで: MAMP PRO をローカル Web サーバーとして使用しています。

4

3 に答える 3

3

OS X のデフォルトのファイルシステムは、大文字と小文字を区別しない HFS+ です。

ボリュームを大文字と小文字を区別する HFS+ としてフォーマットできます。既存のボリュームの大文字と小文字の区別を有効にする (汚い) 方法があります。ただし、これらは既存のソフトウェアを破壊するため、ルート ボリュームでは大文字と小文字の区別を避ける必要があります。

何らかの理由で大文字と小文字を区別するファイルシステムが必要な場合 (Android のビルドで必要な場合など)、ディスク ユーティリティを使用して適切にフォーマットされたディスク イメージを作成できます。

OS X の UNIX 基盤は、大文字と小文字を区別するファイルシステムで問題なく動作することに注意してください。

于 2013-04-05T21:31:47.487 に答える
1

デフォルトでは、Mac OS X は大文字と小文字を区別しないため、「FILE」と「file」は同じファイルの 2 つの名前です。

于 2013-04-05T21:32:26.263 に答える