0

すべての画像パスをエコーするために使用したいforeachのですが、変数が空の$bild_5場合は、HTML コードを表示しないでください。

私のコード:

<html>

<?php

// var
$url    = "http://www.URL/assets/";

$bild_1 = $url . "bild-1.jpg"; 
$bild_2 = $url . "bild-2.jpg"; 
$bild_3 = $url . "bild-3.jpg"; 
$bild_4 = $url . "bild-4.jpg"; 
$bild_5 = ""; 

// array
$bilder = array ("$bild_1", "$bild_2", "$bild_3", "$bild_4", "$bild_5");
?>

<ul>
    <!-- foreach / Template -->
    <?php foreach($bilder as $bild) { ?>    

        <li><img src="<?php echo $bild; ?>"</li>

    <?php } ?>
</ul>

</html>

HTML出力

<html>

<ul>                
   <li><img src="http://www.URL/assets/bild-1.jpg"</li>
   <li><img src="http://www.URL/assets/bild-2.jpg"</li>
   <li><img src="http://www.URL/assets/bild-2.jpg"</li>
   <li><img src="http://www.URL/assets/bild-4.jpg"</li>
   <li><img src=""</li>    // Don´t display this HTML code; ( $bild_5 = ""; )
</ul>

</html>

ご協力ありがとうござい
ます

4

2 に答える 2

1

continueスキップに使えます

<?php foreach($bilder as $bild) { ?>   
       <?php if (empty($bild)) continue; ?> 

        <li><img src="<?php echo $bild; ?>"</li>

<?php } ?>

また、PHP と HTML を混在させる場合は、制御構造に別の構文を使用することをお勧めします。読みやすくなっています

<?php foreach($bilder as $bild) : ?>    

        <li><img src="<?php echo $bild; ?>"</li>

<?php endforeach; ?>

参照 - http://php.net/manual/en/control-structures.alternative-syntax.php

于 2012-09-17T14:32:01.037 に答える
1

いずれかを使用して続行します。上記のように、または単にarray_filter($bilder);foreach の前に実行させます

于 2012-09-17T14:33:45.207 に答える