我需要一個本地或用戶自定義的函數來檢查字符串是否是有效的目錄名稱。 我已經瀏覽了PHP文檔,我只能找到函數is_dir
,它檢查它是否是一個現有的目錄,而不是一個目錄的有效名稱。檢查字符串的有效目錄名稱
5
A
回答
7
這應該適合你。
見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. */
}
4
這會工作。您可以根據需要修改第二個和第三個參數。
if (!mkdir($directory, 0700, true)) {
die('Error: Illegal directory.');
}
請注意,如果目錄名稱有效,這將創建目錄。但是,以我的愚見(並且不知道你的特定用例),這是大多數語言處理檢查目錄名有效性的首選方式。只要嘗試創建目錄,如果失敗,則告訴他們失敗。
這樣做的好處是,它使代碼文件系統保持不可知性,並且它是驗證和創建目錄時最不容易出錯的方法,因爲在驗證之間沒有其他進程或線程能夠創建目錄該目錄以及何時創建它。
缺點是這種方法假定你想立即創建目錄。
當然,mkdir()
可能會失敗的原因有很多(例如,權限不足,硬件故障,無效的目錄名等),所以您可能希望根據錯誤向用戶顯示不同的錯誤消息。不幸的是,PHP沒有像其他語言那樣強大的異常處理能力,但是如果您想要走這條路,您應該可以使用諸如此類answer中的方法來捕獲mkdir()
可以生成的不同警告。
+0
也許你應該試試這個:''mkdir('dirname/test /../temp',0700,true);'在@GregoryBurns的答案中給出的某些東西過濾'$ directory'名稱肯定會很有用... – Wilt
相關問題
- 1. 檢查字符串名稱中的點
- 2. 檢查字符值是否爲有效的R對象名稱
- 3. 檢查字符串是否有效
- 4. 檢查替換字符串是有效
- 5. 檢查字符串有效整數
- 6. Android上的有效目錄名稱
- 7. 檢查字符串中的有效域名?
- 8. 檢查字符串中的有效域名?
- 9. 如何檢查父目錄的名稱?
- 10. 在目錄名稱中列出具有「 - 」字符的目錄
- 11. 檢查UTF16字符串中的所有字符是否有效?
- 12. 如何檢查輸入字符串是否爲有效的活動目錄userPrincipalName?
- 13. 有效的屬性名稱檢查器
- 14. 檢查目錄名是否存在幷包含字符串
- 15. 檢查字符串是否有效文件名
- 16. RStudio,目錄名稱無效
- 17. 550目錄名稱無效
- 18. Path.GetTempFileName - 目錄名稱無效
- 19. 有效檢查字符?
- 20. 檢查名稱是否有效
- 21. 檢查字符串是否有有效的數字
- 22. 有效字符的URL的目錄部分(簡稱鏈接)
- 23. 以SHA-256加密的字符串作爲目錄名稱
- 24. 請與名稱的目錄保存在一個字符串
- 25. 有沒有更好的方法來檢查數組的名稱字符串?
- 26. C#安全性:檢查查詢字符串有效的.pdf文件名
- 27. 目錄名稱包含特殊字符
- 28. 字符串名稱
- 29. 確保字符串是一個有效的CSS ID名稱
- 30. 任意字符串到有效的Python名稱
定義「有效的目錄名稱」每個操作系統都有自己的限制。定義什麼是合法的,而不是,然後對此進行驗證。 –
不存在的目錄將是一個無效的目錄,不是? –
你可以搜索'general'目錄的正則表達式。 – Darkwater