我希望每次在3篇文章后通过XML回显图像,这是我的代码:
<?php
// URL of the XML feed.
$feed = 'test.xml';
// How many items do we want to display?
//$display = 3;
// Check our XML file exists
if(!file_exists($feed)) {
die('The XML file could not be found!');
}
// First, open the XML file.
$xml = simplexml_load_file($feed);
// Set the counter for counting how many items we've displayed.
$counter = 0;
// Start the loop to display each item.
foreach($xml->post as $post) {
echo '
<div style="float:left; width: 180px; margin-top:20px; margin-bottom:10px;">
image file</a> <div class="design-sample-txt">'. $post->author.'</div></div>
';
// Increase the counter by one.
$counter++;
// Check to display all the items we want to.
if($counter >= 3) {
echo 'image file';
}
//if($counter == $display) {
// Yes. End the loop.
// break;
//}
// No. Continue.
}
?>
这里有一个示例前3个是正确的,但现在它没有循环idgc.ca/web-design-samples-testing.php
答案 0 :(得分:138)
最简单的方法是使用模数除法运算符。
if ($counter % 3 == 0) {
echo 'image file';
}
这是如何工作的: 模数除法返回余数。当你处于偶数倍时,余数总是等于0。
有一个问题:0 % 3
等于0.如果您的计数器从0开始,这可能会导致意外结果。
答案 1 :(得分:10)
离开@Powerlord的回答,
“有一个问题:0%3等于0.这可能导致 如果您的计数器从0开始,则会出现意外结果。“
您仍然可以在0(阵列,查询)处启动计数器,但将其抵消
if (($counter + 1) % 3 == 0) {
echo 'image file';
}
答案 2 :(得分:9)
使用PHP手册中找到的模here的模运算操作。
e.g。
$x = 3;
for($i=0; $i<10; $i++)
{
if($i % $x == 0)
{
// display image
}
}
要更详细地了解模数计算,请点击here。
答案 3 :(得分:5)
每3个帖子?
if($counter % 3 == 0){
echo IMAGE;
}
答案 4 :(得分:2)
如何:if(($ counter%$ display)== 0)
答案 5 :(得分:2)
我正在使用状态更新来每1000次迭代显示一个“+”字符,它似乎运行良好。
if ($ucounter % 1000 == 0) { echo '+'; }
答案 6 :(得分:1)
你也可以没有模数。只需在匹配时重置计数器。
if($counter == 2) { // matches every 3 iterations
echo 'image-file';
$counter = 0;
}
答案 7 :(得分:0)
它对第一名不起作用,所以更好的解决方法是:
if ($counter != 0 && $counter % 3 == 0) {
echo 'image file';
}
亲自检查。我已经对其进行了测试,以便为每个第4个元素添加类。