【问题标题】:form variable names with square brackets in用方括号形成变量名
【发布时间】:2013-03-11 17:03:28
【问题描述】:

上传文件时,我会制作类似“预览”的内容。它将表单变量存储为

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']。也就是说,没有找到表单记录。

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

【问题讨论】:

    标签: html arrays forms variables square-bracket


    【解决方案1】:
    $SpecReplace=Array('['=>'&#91;',']'=>'&#93;');
    <input name="Files[',htmlspecialchars(strtr($UpFile_name[$i],$SpecReplace)),'][FileName]" type="text" 
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多