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