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

$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'];

その後、を使用して1つの名前にアクセスできます$photo_names[$i]

于 2012-05-03T10:58:50.643 に答える
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>
于 2012-05-03T10:57:27.627 に答える
1
echo ${'photo_name'.$i}; 

トリックを行う必要があります。

于 2012-05-03T10:57:45.207 に答える