所以我基本上有以下代码:
<?php
$lang = isset($_GET['lang']) ? $_GET['lang'] : NULL;
$langArray = array('en', 'de', 'fr', 'es', 'it');
$img = "<img src='img/".$lang."/1.png' />";
?>
[some useless code here...]
<div class="col ">
<?php echo $img; ?>
<p>Here some text under the img</p>
</div>
根据选择的语言,它将显示不同的图像。如您所见,图像存储在带有语言名称的文件夹中。例如,如果您为英语选择“ en”,则图片显示为/img/en/1.png
。
我的问题是我在这些文件夹中有多张图片(1.png,2.png ... 5.png)。而不是这样写:
<?php
$lang = isset($_GET['lang']) ? $_GET['lang'] : NULL;
$langArray = array('en', 'de', 'fr', 'es', 'it');
$img = "<img src='img/".$lang."/1.png' />";
$img = "<img src='img/".$lang."/2.png' />";
$img = "<img src='img/".$lang."/3.png' />";
$img = "<img src='img/".$lang."/4.png' />";
$img = "<img src='img/".$lang."/5.png' />";
?>
有没有一种方法可以循环回显这些图片?我是PHP的新手,不确定应该写什么。
谢谢。
答案 0 :(得分:2)
for
与$i
循环播放。.=
来表达自己的价值观。您可以像这样循环:
<?php
$lang = isset($_GET['lang']) ? $_GET['lang'] : NULL;
$langArray = array('en', 'de', 'fr', 'es', 'it');
if (!is_null($lang)) {
$img = '';
for($i=1;$i<=5;$i++) {
$img .= "<img src='img/".$lang."/".$i.".png' />";
}
}
?>
答案 1 :(得分:1)
作为@Jouby做出的回答(这是您需要的循环)的补充,我希望您指出您的代码并不真正安全...
直接在输出中使用$ _GET参数会带来麻烦。请先转义该值(例如,使用htmlspecialchars()),甚至更好: 检查$ lang的值是否是$ langArray中的元素(例如,通过使用in_array())。这样,您就知道将在代码中放入什么值。
只是想一想:如果$ _GET ['lang']包含这样的内容怎么办?
"<script>alert('I can steal your session (or worse!)');</script>
答案 2 :(得分:0)
您可以像这样在html中使用循环
<?php for($i = 1; $i <= 5; $i++): ?>
<img src="img/<?= $lang ?>/<?= $i ?>.png" />
<?php endfor; ?>
<?=
比<?php echo
短