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

PHP:如何创建foreach循环(简单代码),php,loops,file-upload,foreach,Php,Loops,File Upload,Foreach,我是PHP新手,已经为表单上的文件上传创建了一些代码 代码运行得很好,但我想知道是否可以使用foreach循环实现同样的效果,这样它也可以处理更多的文件,并且我不必为每个文件编写单独的行 这里有人能帮我写这个,并告诉我如何正确地书写它吗 我的代码(工作): session_start(); $varUID = $_POST['UID']; $varSender = $_SESSION['email']; $varFile1 = $_FILES["file1"]["name"]; $varEx

我是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;
谢谢你在这方面的帮助,
蒂姆

嗨,非常感谢你的快速回复。我试过了,但没用。我需要在这里更改什么吗?我的输入字段的名称和ID是file1、file2和file3。您好,非常感谢您的快速响应。我试过了,但没用。我需要在这里更改什么吗?我的输入字段的名称和ID是file1、file2和file3。这非常好用,我理解它的编写方式-非常感谢您的快速帮助!我只是看到你需要在最后添加一些类似$nr++的东西,否则所有文件都会得到相同的名称。这非常好用,我理解它的编写方式-非常感谢您的快速帮助!我刚刚看到,您需要在最后添加类似$nr++的内容,否则所有文件都将获得相同的名称。
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;