我有 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 循环遍历图像文件夹,因为图像会增加。
因此,要使用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 时,我希望类等于"slide"和"showMe"。 其余的只是类"幻灯片"。
我不断收到解析错误,但我不确定错放或缺少的单引号或双引号在哪里?
任何帮助表示赞赏。
干杯
这里有各种各样的问题。不能将字符串与控件结构连接起来,例如:
"class=". if ($g=0) {...
。并且您将(=
(分配给$g
而不是与之进行比较(==
(。
echo "
<img
id='slideimg$g'
class='slide ".($g ? null : "showMe")."'
src='". htmlspecialchars($file)."'
/>";
此方法使用三元条件,对于外部表达式中间的条件输出很有用。另一种选择是暂时终止输出,输入传统if(...) {
,然后恢复输出。
总而言之,你可以很好地复习一下PHP语法的基础知识。
有时最好将事情分解为步骤,而不是将所有内容都放在一个语句中。
$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++;
}
在 foreach 语句中,您需要这样的东西:
echo "<img id='slideimg" . $g ."' class='";
echo ($g == 0 ) ? " showMe' " : " slide' ";
echo " src='" . htmlspecialchars($file) . "' />";