PHP:如何创建foreach循环(简单代码)


PHP: How to create foreach loop (simple code)

我是PHP的新手,并且为表单上的文件上传创建了一个小代码。

代码工作正常,但我想知道我是否可以使用 foreach 循环实现相同的效果,以便它也可以处理更多文件,而我不必为每个文件编写单独的行。

这里有人可以帮助我解决这个问题并告诉我如何正确编写它。

我的代码(工作(:

session_start();
$varUID = $_POST['UID'];
$varSender = $_SESSION['email'];
$varFile1 = $_FILES["file1"]["name"];
$varExt1 = pathinfo($varFile1, PATHINFO_EXTENSION);
$varFile2 = $_FILES["file2"]["name"];
$varExt2 = pathinfo($varFile2, PATHINFO_EXTENSION);
$varFile3 = $_FILES["file3"]["name"];
$varExt3 = pathinfo($varFile3, PATHINFO_EXTENSION);
move_uploaded_file($_FILES["file1"]["tmp_name"], "uploads/" . $varUID . "_1" . "." . $varExt1);
move_uploaded_file($_FILES["file2"]["tmp_name"], "uploads/" . $varUID . "_2" . "." . $varExt2);
move_uploaded_file($_FILES["file3"]["tmp_name"], "uploads/" . $varUID . "_3" . "." . $varExt3);
echo $varUID;

感谢您对此的任何帮助,提姆

foreach ($_FILES as $key => $file) {
    $name = $file["name"];
    $ext = pathinfo($name, PATHINFO_EXTENSION);
    preg_match('/('d+)$/', $key, $match); // get 2 out of "file2"
    $nr = $match[1];
    move_uploaded_file($file["tmp_name"], "uploads/" . $varUID . "_" . $nr . "." . $ext);
}
$varUID = $_POST['UID'];
$varSender = $_SESSION['email'];
$i = 1;
foreach ($_FILES as $key => $file) {
    $varFile = $file[$key]["name"];
    $varExt = pathinfo($varFile, PATHINFO_EXTENSION);
    move_uploaded_file($file[$key]["tmp_name"], "uploads/" . $varUID . "_" . $i . "." . $varExt);
    $i++;
}
echo $varUID;