我正在使用php preg_replace来清理我的上传文件,我想删除任何不需要的字符,如(&?/''~{}[]-这也会删除空白)等,但我不想删除"(句号/句号),因为它去掉了文件扩展名。
我一直在互联网上搜索,但一直在寻找要么删除所有特殊字符,要么过于复杂的正则表达式。
这是我当前的代码,但正如你所看到的,它正在删除"
$filename = preg_replace("/[^a-zA-Z0-9]/", '', "{$uploadedFile}");
我一定错过了一个答案,因为这似乎是一个相当直接的请求,有人知道我需要包括什么吗?
字符类列出要允许/禁止的字符。所以,在你的角色类中添加.
,你就可以开始了。
$filename = preg_replace("/[^a-zA-Z0-9.]/", '', "{$uploadedFile}");
演示:https://regex101.com/r/bE5qI4/1
有关其他信息:http://www.regular-expressions.info/charclass.html
另外值得注意的是:
在大多数regex风格中,字符类中唯一的特殊字符或元字符是右括号(])、反斜杠()、插入符号(^)和连字符(-)。