$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 ......等。请帮助我,以便我可以在循环中检索他们的名字。
答案 0 :(得分:1)
您要使用implode
而不是explode
我不确定你的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>
答案 1 :(得分:1)
echo ${'photo_name'.$i};
应该这样做。
答案 2 :(得分:1)
为什么不让$photo_name
成为一个数组?然后你可以简单地做
echo $photo_name[$i];
此外,您应该使用pathinfo()
来确定文件扩展名,因为当有人命名文件photo.foo.bar.jpg
时,事情会变得混乱:
$path_info = pathinfo($filename);
$ext = $path_info['extension'];
答案 3 :(得分:1)
您应该将名称存储在数组中,而不是存储在单个变量中:
$photo_names[1] = $_FILES['pf5']['name'];
$photo_names[2] = $_FILES['pf2']['name'];
然后,您可以使用$photo_names[$i]
访问一个名称。