无法连接并回显名称

时间:2012-05-03 10:53:53

标签: php string-concatenation

这可能看起来很傻,但我被困在这里。我上传了一些照片,其名称保存为$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 ......等。请帮助我,以便我可以在循环中检索他们的名字。

4 个答案:

答案 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]访问一个名称。