使用PHP添加条件图像类名称

时间:2017-08-23 14:10:48

标签: php html

我有6个简单的html图片:

<img id="slideimg0" class="slide showMe" src="images/atmosphere.png">
<img id="slideimg1" class="slide" src="images/experts.png">
<img id="slideimg2" class="slide" src="images/pro.png">
<img id="slideimg3" class="slide" src="images/master.png">
<img id="slideimg4" class="slide" src="images/teacher.png">
<img id="slideimg5" class="slide" src="images/tuition.png">

但是,我试图用PHP循环遍历images文件夹,因为图像会增加。

所以要用PHP重新创建上面的内容我试过了:

$files = glob('images/*.{png}', GLOB_BRACE);
    $g =0;
    foreach($files as $file) { 
    echo"<img id='slideimg' " . $g ."class=". if ($g=0) { echo "slide showMe"; } else { echo "slide";} ."src=". htmlspecialchars($file); ." > ";
    $g++; 
    } 

所以我想做的就是当slideimg0,我希望课程等于&#34;滑动&#34;和&#34; showMe。&#34;其余的只是上课&#34;滑动。&#34;

我不断收到解析错误,我不确定错误放置或丢失单引号或双引号的位置?

任何帮助表示感谢。

干杯

3 个答案:

答案 0 :(得分:2)

这里有各种各样的问题。您不能将字符串与控制结构连接起来,例如:

"class=". if ($g=0) {...

...并且您将{=)分配给$g而不是与之进行比较(==)。

echo "
<img
    id='slideimg$g'
    class='slide ".($g ? null : "showMe")."'
    src='". htmlspecialchars($file)."'
/>";

此方法使用三元条件,对外部表达式中间的条件输出很有用。替代方案是暂时终止输出,输入传统的if(...) {,然后继续输出。

总而言之,您可以很好地了解PHP语法的基础知识。

答案 1 :(得分:1)

在foreach声明中你需要这样的东西:

echo "<img id='slideimg" . $g ."' class='"; 
echo ($g == 0 ) ? " showMe' " : " slide' ";
echo " src='" . htmlspecialchars($file) . "' />";

答案 2 :(得分:1)

有时最好将事情分解为步骤而不是将所有内容都放在一个陈述中。

$files = glob('images/*.{png}', GLOB_BRACE);
$g = 0;
foreach($files as $file) { 
    if ( $g = 0 ) { 
        $classPhrase = "\"slide showMe\""; 
    } else { 
        $classPhrase = "\"slide\"";
    }
    $srcPhrase = '"' . htmlspecialchars($file) . '"';
    $id = "\"slideimg{$g}\"";
    /* Note that $classPhrase and $srcPhrase are pre-wrapped 
       in quotes because that is how the must be output. */
    echo "<img id={$id} class=". $classPhrase ." src=". $srcPhrase ." > ";
    $g++; 
}