2017-08-05 11 views
1

私はPHPでギャラリーを作ろうとしています。私はすべての画像をフォルダから取り出し、3行目に表示したいと思います。私はそれを動作させていますが、最初の2つの画像はうんざりです。PHPで画像ギャラリーが表示される問題

これは私が試したものです:

$images = glob("$_SERVER[DOCUMENT_ROOT]/gallery/img*.{png,jpg,gif}", GLOB_BRACE); 
echo '<table width="100%>'; 
$count="-1"; 
foreach($images as $image) { 
    if ($count%3 == 1) { 
     echo '<tr>'; 
    } 
    $url=str_replace("/home/#####/public_html/gallery", "", $image); 
    echo '<td width="33%"><div class="gallery">'; 
    echo '<img onclick="window.location='.$url.'" src="'.$url.'" alt="Image Alt" width="400" height="300">'; 
    echo '</div></td>'; 
    if ($count%3 == 3) { 
     echo '</tr>'; 
    } 
    //echo $count; 
    $count++; 
    //echo "|".$count; 
} 
if ($count%3 != 1) { 
    echo ',</tr>'; 
} 
echo '</table>'; 

//echo print_r($images); 

これは一種の動作しますが、それはこのなります:

(これらは単にストックフォトあり、実際の写真は少し..です攻勢)

私は間違ったことをしていることは知っていますが、私は何を知りません!

+1

生成された実際のHTMLを共有できますか?何がうまくいかないかを簡単に確認できます。 – Cagy79

+0

写真はすべて.. ..私は電話で要素を正確に調べることができません。 –

答えて

1

あなたのコードに多少の誤差は(コメントを参照)がありました。たぶんこれを試してみてください:

$images = glob("$_SERVER[DOCUMENT_ROOT]/gallery/img/*.{png,jpg,gif}", GLOB_BRACE); 
echo '<table style="width:100%">'; // error was here (missing ") 
$count = 0; // error was here (counter = "-1") 
foreach ($images as $image) { 
    // start <tr> on 0 
    if ($count == 0) { 
    echo '<tr>'; 
    } 
    $url=str_replace("/home/#####/public_html/gallery/", "", $image); 
    echo '<td style="width:33%"><div class="gallery">'; // alternative 
    echo '<img onclick="window.location='.$url.'" src="'.$url.'" alt="Image Alt" width="400" height="300">'; 
    echo '</div></td>'; 
    // end tr at 3 
    if ($count == 3) { 
    echo '</tr>'; 
    // reset counter 
    $count = -1; 
    } 
    $count++; 
} 
echo '</table>'; 
+1

彼のコードに何が間違っているかを示すのが良いと思います。 – SaidbakR

0

$count初期値に問題があると思います。

これを試してみてください:

$count="3"; 
foreach($images as $image) { 
    if ($count%3 == 0) { 
     echo '<tr>'; 
    } 
    $count++; 

    ... 
関連する問題