2

私の/images/ディレクトリには、image1.jpg、image2.jpg、image3.jpgなどの順番で名前が付けられた一連の関連画像があります...

ループを使用して PHP でマークアップの画像を出力しようとしています。ただし、画像の数はさまざまであるため、ディレクトリ内の最後の画像ファイルに到達したら停止する必要があります。

5つの画像があるとします。出力のみにしたい:

<img src="images/image1.jpg">
<img src="images/image2.jpg">
<img src="images/image3.jpg">
<img src="images/image4.jpg">
<img src="images/image5.jpg">

image6.jpgディレクトリに追加すると、自動的にマークアップに追加されます。これどうやってやるの?

私の現在の方法

for ( $i=1; $i<100; $i++ ) {

    if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
        echo '<img src="http://localhost/images/image' . $i . '.jpg'">';
    }
}
4

4 に答える 4

3

どうscandirですか?

$dir    = '/images';
$imgs = scandir($dir);

foreach($imgs as $img)
{
  if($img != '.' && $img != '..')
  {
    echo '<img src="http://localhost/images/'.$img.'">';
  }
}
于 2013-01-17T20:56:57.583 に答える
3

このスニペットは、目的の結果を生成します。

$i = 1;
while(file_exists('./images/image' . $i . '.jpg')){
    echo '<img src="images/image' . $i . '.jpg">';
    $i++;
}
于 2013-01-17T20:58:18.677 に答える
2

file_exists()そんな時に呼ばれる機能があります。

于 2013-01-17T20:50:33.363 に答える
1

あなたの質問に答えるには:

for ( $i=1; $i<100; $i++ ) {

    if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
        echo '<img src="http://localhost/images/image' . $i . '.jpg">';
    } else {
        break;
    }
}

ただし、例には余分な一重引用符があるため、次のように出力されます。

<img src="images/image1.jpg'">
<img src="images/image2.jpg'">
<img src="images/image3.jpg'">
<img src="images/image4.jpg'">
<img src="images/image5.jpg'">
于 2013-01-17T22:27:16.757 に答える