dongwei1954 2016-12-12 10:31
浏览 122
已采纳

PHP - for循环如何使用$ i + 1

Hello I'm writing PHP upload multiple files and I want to add ordinal number suffix to the filename.

but my for loop start from $i = 0(because of array) so I want to add suffix filename from 1 not zero by use $i + 1 on the line : $newname = "id".$id."_".date('Y-m-d')."_".$i+1.".".$file_extension; but It's get syntax error

here is my code.

$count = count($_FILES["images"]["name"]);
$arr_newname = array();
for($i=0; $i <= $count; $i++){   
              if ((($_FILES["images"]["type"][$i] == "image/gif")
             || ($_FILES["images"]["type"][$i]  == "image/jpeg")
            || ($_FILES["images"]["type"][$i]  == "image/png")
            || ($_FILES["images"]["type"][$i] == ""))
            && ($_FILES["images"]["size"][$i] < 9000000)) //9 MB
            {

                $split = explode(".", $_FILES["images"]["name"][$i]);
                $file_extension = end($split);

                $newname = "id".$id."_".date('Y-m-d')."_".$i+1.".".$file_extension; 
                $arr_newname[$i] = $newname;
                move_uploaded_file($_FILES["images"]["tmp_name"][$i] , "images/location/".$newname);

              }
              else{
              echo "Invalid file;
              } 
            }

for now, I solve problem by use for loop start from $i=1 and use $i-1 on array instead. but it's very ugly code for me.

for($i=1; $i <= $count; $i++){   
   if ((($_FILES["images"]["type"][$i-1] == "image/gif")
             || ($_FILES["images"]["type"][$i-1]  == "image/jpeg")
            || ($_FILES["images"]["type"][$i-1]  == "image/png")
            || ($_FILES["images"]["type"][$i-1] == ""))
            && ($_FILES["images"]["size"][$i-1] < 9000000)) //9 MB 
            {

                $split = explode(".", $_FILES["images"]["name"][$i-1]);
                $file_extension = end($split);

                $newname = "id".$id."_".date('Y-m-d')."_".$i.".".$file_extension; 
                $arr_newname[$i-1] = $newname;
                move_uploaded_file($_FILES["images"]["tmp_name"][$i-1] , "images/location/".$newname);

              }
              else{
              echo "Invalid file;
              } 
            }

So Is there other way to I use $i+1 on the $newname file? and why $i-1 work fine on those array

  • 写回答

2条回答 默认 最新

  • dt4233 2016-12-12 10:35
    关注

    ($i+1) dude.

    $newname = "id".$id."_".date('Y-m-d')."_".($i+1).".".$file_extension;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮