Tôi cần một hàm, có nguồn gốc hoặc do người dùng tạo, kiểm tra xem chuỗi có phải là tên thư mục hợp lệ hay không. Tôi đã xem qua tài liệu PHP và tôi chỉ có thể tìm thấy hàm is_dir
kiểm tra xem đó có phải là thư mục hiện có hay không và không phải là tên hợp lệ cho một thư mục.Kiểm tra chuỗi cho tên thư mục hợp lệ
Trả lời
Điều này sẽ phù hợp với bạn.
Xem regex for validating folder name & file name
if (strpbrk($filename, "\\/?%*:|\"<>") === FALSE) {
/* $filename is legal; doesn't contain illegal character. */
}
else {
/* $filename contains at least one illegal character. */
}
này sẽ làm việc. Bạn có thể sửa đổi các đối số thứ hai và thứ ba theo nhu cầu của bạn.
if (!mkdir($directory, 0700, true)) {
die('Error: Illegal directory.');
}
Lưu ý rằng điều này sẽ tạo thư mục nếu tên thư mục hợp lệ. Tuy nhiên, theo quan điểm khiêm tốn của tôi (và không biết trường hợp sử dụng cụ thể của bạn), đây là cách ưu tiên trong hầu hết các ngôn ngữ để xử lý tính hợp lệ của tên thư mục kiểm tra. Chỉ cần thử tạo thư mục, và nếu nó không thành công, sau đó nói với họ rằng nó không thành công.
Lợi ích của việc này là nó giữ cho hệ thống tệp mã của bạn bất khả tri và đó là phương pháp ít bị lỗi nhất để xác thực và tạo thư mục, vì không có quy trình hoặc chuỗi nào khác có thể tạo thư mục giữa khi bạn xác thực thư mục và khi bạn tạo nó.
Hạn chế là phương pháp này giả định bạn muốn tạo thư mục ngay lập tức.
Tất nhiên, có nhiều lý do khiến mkdir()
bị lỗi (ví dụ: không đủ quyền, lỗi phần cứng, tên thư mục không hợp lệ, v.v.), vì vậy bạn có thể hiển thị các thông báo lỗi khác nhau cho người dùng dựa trên lỗi. Thật không may, PHP không có xử lý ngoại lệ mạnh mẽ như một số ngôn ngữ khác, nhưng nếu bạn muốn đi xuống con đường này, bạn sẽ có thể sử dụng cách tiếp cận như trong answer để nhận các cảnh báo khác nhau mà mkdir()
có thể tạo.
Có lẽ bạn nên thử điều này: 'mkdir ('dirname/test /../ temp', 0700, true);' Nó có thể hữu ích để lọc tên '$ directory' cho những thứ nhất định như @GregoryBurns gợi ý trong câu trả lời của anh ấy ... – Wilt
- 1. Delphi: Đổi tên Thư mục Không hợp lệ
- 2. Kiểm tra IMEI hợp lệ
- 3. Kiểm tra tập tin/thư mục cho phép truy cập
- 4. java - Cách kiểm tra xem chuỗi có phải là tên phần tử XML hợp lệ không?
- 5. kiểm tra xem có thư mục có tên bắt đầu bằng một chuỗi cụ thể
- 6. Kiểm tra gravatar hợp lệ (PHP)
- 7. Tôi có thể cải thiện kiểm tra regex này cho các tên miền hợp lệ không?
- 8. Kiểm tra xem đường dẫn có đại diện cho một tệp hay một thư mục
- 9. Kiểm tra xem Tệp PDF có hợp lệ không (Python)
- 10. Cách kiểm tra xem chuỗi có phải là URL HTTP hợp lệ không?
- 11. kiểm tra ngày hợp lệ với phương pháp DateTime.TryParse
- 12. Thư viện Java để kiểm tra xem Chuỗi có chứa số * không * ngoại lệ
- 13. Cách kiểm tra xem URL có hợp lệ không
- 14. Cách dễ nhất để kiểm tra xem Chuỗi tùy ý có phải là tên tệp hợp lệ hay không
- 15. Kiểm tra thời gian biên dịch cho các tham chiếu tệp hợp lệ trong Xcode
- 16. Scala: Xác định các trường hợp kiểm tra dựa trên thư mục
- 17. Trường hợp kiểm tra đối với đầu vào chuỗi
- 18. Kiểm tra xem chuỗi UTF-8 có hợp lệ trong Qt
- 19. Kiểm tra xem một chuỗi là một mẫu RegEx hợp lệ VB.NET
- 20. Python: Cách kiểm tra xem một chuỗi có phải là một IRI hợp lệ không?
- 21. Git/gitosis: Cách kiểm tra tính hợp lệ của tên người dùng và email?
- 22. Kiểm tra Javascript nếu Giấy chứng nhận SSL hợp lệ
- 23. CakePHP - Phương pháp tiện ích để kiểm tra chuỗi là địa chỉ email hợp lệ?
- 24. ASP Classic: Kiểm tra xem chuỗi chỉ bao gồm các ký tự hợp lệ
- 25. Kiểm tra xem một chuỗi có hợp lệ UTF-8 được mã hóa trong Java
- 26. Kiểm tra phiên hợp lệ: isRequestedSessionIdValid() vs getSession (false)
- 27. Kiểm tra tính hợp lệ của email trong django/python
- 28. Tìm chuỗi trong tên tệp trong thư mục con
- 29. Kiểm tra chuyển hướng thư mục "Tài liệu của tôi"
- 30. Kiểm tra xem ValidationGroup có hợp lệ từ mã sau
Xác định "tên thư mục hợp lệ" Mỗi hệ điều hành có các hạn chế riêng. Xác định những gì hợp pháp và không, và sau đó xác nhận đối với điều đó. –
một thư mục không tồn tại sẽ là một thư mục không hợp lệ, phải không? –
Bạn có thể tìm kiếm một thư mục 'chung' regex .. – Darkwater