Php $\u文件中的文件名不能很好地使用撇号

Php $\u文件中的文件名不能很好地使用撇号,php,file-upload,Php,File Upload,我正在处理一个图像上传流,在测试后遇到了一个奇怪的问题。我们正在尝试使用以下文件名对其进行测试: 1234567890-=!@#$%^&()_+qwertyuiop[]{}asdfghjkl;'zxcvbnm,.png 在表单发布之后,我在$\u FILES对象中查看它,我得到的名称是: zxcvbnm,..png (这两点不是打字错误) 在研究这一点时,我听说这可能与魔法格言有关。我试着把它们关掉,但没有成功。有什么想法吗?还有,下面的代码 $size = sizeof($_FIL

我正在处理一个图像上传流,在测试后遇到了一个奇怪的问题。我们正在尝试使用以下文件名对其进行测试:

1234567890-=!@#$%^&()_+qwertyuiop[]{}asdfghjkl;'zxcvbnm,.png
在表单发布之后,我在$\u FILES对象中查看它,我得到的名称是:

zxcvbnm,..png
(这两点不是打字错误)

在研究这一点时,我听说这可能与魔法格言有关。我试着把它们关掉,但没有成功。有什么想法吗?还有,下面的代码

$size = sizeof($_FILES['userfile']['name']);
for($i = 0; $i < $size; $i++) {
    $file_name = $_FILES['userfile']['name'][$i];
    $file_path = $_FILES['userfile']['tmp_name'][$i];
    $file_error = $_FILES['userfile']['error'][$i];
    ...
$size=sizeof($_FILES['userfile']['name']);
对于($i=0;$i<$size;$i++){
$file\u name=$\u FILES['userfile']['name'][$i];
$file\u path=$\u FILES['userfile']['tmp\u name'][$i];
$file\u error=$\u FILES['userfile']['error'][$i];
...

$file\u name变量是要修剪的。注意事项?

尝试使用名称上的
addslashes
函数:

您正在浏览器中手动发布,在浏览器中选择一个具有该“名称”的文件?@JoopEggen您可以创建具有该名称的文件,这对于检测非常用字符的问题是一件好事。在我的测试中,我通常尝试注册类似的用户名,以查看是否有什么(通常从某些库中合并)很好地接受它,否则一切都会化为乌有。@CarlosCampderrós是的,我对想到这样一个测试感到非常惊讶。我问它是否确实是手动完成的,因为自动测试可能会出错。重复
令人困惑。-它看起来像是一个URL重写。是的,我不确定为什么这段时间是b重复了。但是现在已经修好了。很奇怪。检查我标记的答案-_-