Trước hết, Mac OS X không phải là hệ điều hành gốc của tôi, nhưng vì tôi cảm thấy thoải mái trong Ubuntu, nó là một sự chuyển đổi dễ dàng cho hầu hết các phần.trường hợp nhạy cảm trên Mac cho file_exists()?
Do đó là dựa trên Unix, tôi đã bị ấn tượng rằng hệ điều hành này phân biệt chữ hoa chữ thường, nhưng hàm file_exists()
nói cách khác.
Trong file htdocs của tôi, tôi có 2 file:
test.php
MyFiLeWiThMiXeDCaSe.php
Trong test.php, tôi có mã này:
if(file_exists('myfilewithmixedcase.php')) {
echo 'exists';
} else {
echo 'doesnt exist';
}
// ouputs: exists
Bất cứ ai biết làm thế nào/tại sao điều này xảy ra? Điều này gây ra sự cố bởi vì khi chúng tôi triển khai mã như thế này với một hệ điều hành Linux, file_exists()
đang trả về false.
BTW: Tôi đang sử dụng MAMP PRO làm máy chủ web cục bộ.
Không phải là câu trả lời cho câu hỏi hiện tại của bạn, nhưng thật dễ dàng để tạo phân vùng nhỏ có hệ thống tệp phân biệt chữ hoa chữ thường và gắn kết vì hệ thống tệp mặc định trên OSX cho phép thay đổi kích thước. Đặt các dự án web của bạn trên phân vùng đó để ngăn không cho bạn tạo ra các lỗi/vấn đề liên quan đến trường hợp nhạy cảm. Chỉ cần xem ra với đường dẫn apache của bạn nếu bạn quyết định tạo một liên kết tượng trưng đến phân vùng mới của bạn. –
Cảm ơn bạn đã tư vấn, có vẻ như nếu tôi tạo một phân vùng cho thư mục htdocs của tôi, nó sẽ giảm thiểu vấn đề này đáng kể. – Mark1inLA
Bạn có thể tự viết cho mình một phiên bản nhạy cảm của file_exists(). Trước tiên, bạn có thể nhận danh sách tệp của thư mục mẹ và kiểm tra xem tệp hiện tại có nằm trong đó với so sánh phân biệt chữ hoa chữ thường hay không. –