0

这对你来说可能看起来很傻,但我被困在这里。我有一些照片正在上传,它们的名字被保存下来$photo_name1,比如$photo_name2......

$photo_name1 = $_FILES['pf5']['name'];
$photo_name2 = $_FILES['pf2']['name'];

现在我想循环检索他们的名字

for($i = 1; $i<=4; $i++)
{
echo $photo_name.$i;        

list($txt, $ext) = explode(".", $photo_name.$i);

以下回声仅显示 1,2,3...etc 。请帮助我,以便我可以在循环中检索他们的名字。

4

4 回答 4

1

你是用implodeexplode

我不确定你HTML的结构是怎样的,但你的名字应该是这样的

$_FILES['pf5']['name'][0];
$_FILES['pf5']['name'][1];
$_FILES['pf5']['name'][2];

原来它是这样的,这意味着您正在使用多种形式......

$photo_name1 = $_FILES['pf5']['name'];
$photo_name2 = $_FILES['pf2']['name'];

想象一下

$names = array (); //have name array 
foreach ( $_FILES ['image'] ['tmp_name'] as $key => $val) {
    $names [] = $_FILES ['image'] ['name'] [$key]; //put names to array
}

echo implode(",", $names); // print the names 

HTML

<form method="post" enctype="multipart/form-data">
    <label for="file">Filename 1:</label> <input type="file" name="image[]"
        id="file" /> <br /> <label for="file">Filename 2:</label> <input
        type="file" name="image[]" id="file" /> <br /> <label for="file">Filename
        3:</label> <input type="file" name="image[]" id="file" /> <br /> <input
        type="submit" name="submit" value="Submit" />
</form>
于 2012-05-03T10:57:27.627 回答
1
echo ${'photo_name'.$i}; 

应该做的伎俩。

于 2012-05-03T10:57:45.207 回答
1

为什么不做$photo_name一个数组?然后你可以简单地做

echo $photo_name[$i];

此外,您应该使用pathinfo()来确定文件扩展名,因为当有人命名文件时,photo.foo.bar.jpg事情会变得混乱:

$path_info = pathinfo($filename);
$ext = $path_info['extension'];
于 2012-05-03T10:58:40.310 回答
1

您应该将名称存储在数组中,而不是单个变量中:

$photo_names[1] = $_FILES['pf5']['name'];
$photo_names[2] = $_FILES['pf2']['name'];

然后,您可以使用 访问一个名称$photo_names[$i]

于 2012-05-03T10:58:50.643 回答