2013-04-05 19 views
7

Po pierwsze, Mac OS X nie jest moim natywnym systemem operacyjnym, ale ponieważ czuję się komfortowo w Ubuntu, było to łatwe przejście w przeważającej części.wielkość liter na Mac dla file_exists()?

Będąc tym, że jest oparty na Uniksie, byłem pod wrażeniem, że ten os rozróżniał wielkość liter, ale funkcja file_exists() mówi inaczej.

W moim pliku htdocs, mam te 2 pliki:

test.php

MyFiLeWiThMiXeDCaSe.php

W test.php, mam ten kod:

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

// ouputs: exists 

Czy ktoś wie jak/dlaczego tak się dzieje? Jest to przyczyną problemu, ponieważ gdy wdrażamy kod taki jak ten w systemie Linux, file_exists() zwraca wartość false.

BTW: Używam MAMP PRO jako lokalnego serwera WWW.

+3

Brak odpowiedzi na bieżące pytanie, ale łatwo jest utworzyć niewielką dodatkową partycję, która ma system plików wrażliwy na wielkość liter i zamontować go, ponieważ domyślny system plików na osx umożliwia zmianę rozmiaru. Umieść swoje projekty internetowe na tej partycji, aby zapobiec tworzeniu błędów/problemów związanych z rozróżnianiem wielkości liter. Po prostu uważaj na swoje ścieżki apache, jeśli zdecydujesz się utworzyć dowiązanie symboliczne do nowej partycji. –

+0

Dziękuję za radę, brzmi to tak, jakbym utworzył partycję dla mojego folderu htdocs, powinien znacznie zminimalizować ten problem. – Mark1inLA

+0

Możesz napisać do Ciebie osobiście wersję pliku file_exists(). Możesz najpierw uzyskać listę plików katalogu nadrzędnego i sprawdzić, czy jest w nim obecny plik z porównaniem wielkości liter. –

Odpowiedz

3

Domyślnym systemem plików na OS X jest wielkość liter HFS + bez względu na wielkość liter.

Można sformatować objętość jako HFS z rozpoznawaniem wielkości liter i istnieją (zabrudzone) sposoby włączania rozróżniania wielkości liter dla istniejących woluminów. Ale te zepsują istniejące oprogramowanie i powinieneś unikać rozróżniania wielkości liter w woluminie root.

Jeśli potrzebujesz jakiegoś systemu plików z rozróżnianiem wielkości liter (np. Wymaga tego system Android), możesz utworzyć odpowiednio sformatowany obraz dysku za pomocą Narzędzia dyskowego.

Należy pamiętać, że podstawowa wersja systemu OS X w systemie UNIX będzie działać poprawnie z systemem plików z rozróżnianiem wielkości liter.

+0

Dzięki za szczegółową odpowiedź. Jeśli moje narzędzie na dysku mówi Format: \t Mac OS Extended (Journaled), czy to oznacza, że ​​obecnie nie uwzględnia wielkości znaków? – Mark1inLA

+0

Tak. Systemy plików wrażliwe na wielkość znaków są specjalnie oznaczone w Narzędziu dyskowym. (Można go łatwo utworzyć, tworząc nowy obraz dysku.) – nneonneo

1

Domyślnie w systemie Mac OS X nie jest rozróżniana wielkość liter, więc "PLIK" i "plik" to dwie nazwy tego samego pliku.

4

Mimo że jest pochodną BSD, OS X NIE rozróżnia wielkości liter. Lub raczej systemy plików HF i HFS + nie są, chyba że wybrałeś opcję uwzględniania wielkości liter podczas formatowania dysku. Zazwyczaj nie jest to robione, ponieważ wiele aplikacji ma problemy z tym (Adobe, MS, itp.) - a przynajmniej zrobili to po raz ostatni, gdy próbowałem go pod Tygrysem.

Powiązane problemy