2012-05-03 66 views
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 ...等。請幫助我,以便我可以在循環中檢索他們的名字。

回答

1
echo ${'photo_name'.$i}; 

應該做的伎倆。

+0

謝謝Rijk..did訣竅:) – AssamGuy

+1

你真的應該指出一個人儘可能使用變量對數組。 – CodeCaster

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

爲什麼不讓$photo_name成爲一個數組?然後,你可以簡單地做

echo $photo_name[$i]; 

而且你應該使用pathinfo()確定的文件擴展名,因爲當有人名的文件photo.foo.bar.jpg事情會失控:

$path_info = pathinfo($filename); 
$ext = $path_info['extension']; 
1

你應該在名稱存儲在數組中和不在個別變量中:

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

然後您可以使用$photo_names[$i]訪問一個名稱。