设置如下:Fedora Linux/PHP/Apache
我有一个要求,允许用户用他们的语言输入文件名。当我在测试时,Linux用阿拉伯语创建了fine文件。
我的问题是,我应该使用什么字符和什么正则表达式来验证文件名?
一般:POSIX允许除
以外的所有字符-
'0
(null char) -
/
(path separator)
什么都可以,所以这真的取决于你想要接受什么
如果您希望文件名也可以移植到Windows上,请记住:
- windows使用不区分大小写的文件名
- 什么是有效的windows文件名
所有字符串都是有效的,除了0x00。所以不用正则表达式,试试:
if (strpos($filename,"'x00")===false) {
}