使用 PHP 添加条件图像类名



我有 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) . "' />";

最新更新