我需要一个本地或用户自定义的函数来检查字符串是否是有效的目录名称。 我已经浏览了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