我需要清理一些将在文件名中使用的数据.某些数据包含空格和符号字符.是否有一个函数可以转义或清理适合在文件名(或路径)中使用的数据?我在PHP手册的"文件系统功能"部分找不到一个.
所以,假设我必须编写自己的函数,我需要逃避(或更改)哪些字符?
Ric*_*dle 10
对于Windows:
/ \ : * ? " < > |
Run Code Online (Sandbox Code Playgroud)
对于Unix,技术上没什么,但实际上与Windows相同的列表是明智的.
只要您准备在操作文件时在命令行上使用引号,空格或&符号就没有错.
(顺便说一句,我通过尝试将Windows上的文件重命名为包含冒号的内容,并从错误消息中复制来获取该列表.)
如果您有机会将原始名称存储在数据库中,我只需创建一个带有随机哈希的文件(mt_rand()/ md5/sha1).好处是您不依赖于底层操作系统(字符/路径长度),用户输入的值或长度,而且很难猜测/伪造文件名.也许甚至base64编码也是一种选择.
| 归档时间: |
|
| 查看次数: |
4013 次 |
| 最近记录: |