我有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;
我不断收到解析错误,我不确定错误放置或丢失单引号或双引号的位置?
任何帮助表示感谢。
干杯
答案 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++;
}