使用方括号形成变量名称

时间:2013-03-11 17:03:29

标签: html arrays forms variables square-bracket

上传文件时,我会做'预览'之类的事情。它将表单变量存储为

for(i=0;i<count($UpFile);i++){ //loop
<input name="Files[',htmlspecialchars($UpFile_name[$i]),'][FileName]" type="text" value="',htmlspecialchars($UpFile_name[$i]),'">
<input name="Files[',htmlspecialchars($UpFile_name[$i]),'][FileSize]" type="text" value="',htmlspecialchars($UpFile_size[$i]),'">

然后在提交后,当$Files是数组时,我使用它们的名称作为变量名称来处理已保存的文件。

问题是,当我上传名为file[123].jpg的文件时,php会将其视为$Files['file[123].jpg'],而不是$Files[$file[123].jpg']。换句话说,找不到表单记录。

如果文件名中有些名称,如何存储表单输入的名称以保留方括号?

1 个答案:

答案 0 :(得分:0)

$SpecReplace=Array('['=>'&#91;',']'=>'&#93;');
<input name="Files[',htmlspecialchars(strtr($UpFile_name[$i],$SpecReplace)),'][FileName]" type="text" 

将括号替换为html特殊字符帮助=)