【问题标题】:How would I wrap every 3 divs that my PHP for statement echos out in a wrapper div?我将如何包装我的 PHP for 语句在包装器 div 中回显的每 3 个 div?
【发布时间】:2015-05-07 18:38:00
【问题描述】:

我有这个代码:

                $limit = 8;
                for($x=0;$x<$limit;$x++) {
                    $title = substr(str_replace(' & ', ' &amp; ', $feed[$x]['title']), 0, 60);
                    $link = $feed[$x]['link'];
                    $description = substr(preg_replace('/\<a.*/', '', $feed[$x]['desc']),0 , 120) . " ... "; //$feed[$x]['desc'];
                    $image = preg_replace('/\?w.*/', '', $feed[$x]['image']);
                    $date = date('l F d, Y', strtotime($feed[$x]['date']));

                    echo '<div class="blog-item item col-md-4' . $rowOpen . '"><img src="' . $image . '"><div class="blog-item-info"><div class="title"><h3>'. $title . '</h3></div><div class="date">' . $date . '</div><div class="preview"><p>'. $description .'</p></div><a href="' . $link .'"><button class="read-more">Read More</button></a></div></div></div>';

                    /*echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
                    echo '<small><em>Posted on '.$date.'</em></small></p>';
                    echo $image;
                    //echo '<p>'.$description.'</p>';*/
                }

我想要做的是我希望每三个回声被包裹在一个

<div class="row"></div>

所以我希望它看起来像这样:

<div class="row">
  echo '<div class="blog-item item col-md-4' . $rowOpen . '"><img src="' . $image . '"><div class="blog-item-info"><div class="title"><h3>'. $title . '</h3></div><div class="date">' . $date . '</div><div class="preview"><p>'. $description .'</p></div><a href="' . $link .'"><button class="read-more">Read More</button></a></div></div></div>';
  echo '<div class="blog-item item col-md-4' . $rowOpen . '"><img src="' . $image . '"><div class="blog-item-info"><div class="title"><h3>'. $title . '</h3></div><div class="date">' . $date . '</div><div class="preview"><p>'. $description .'</p></div><a href="' . $link .'"><button class="read-more">Read More</button></a></div></div></div>';
  echo '<div class="blog-item item col-md-4' . $rowOpen . '"><img src="' . $image . '"><div class="blog-item-info"><div class="title"><h3>'. $title . '</h3></div><div class="date">' . $date . '</div><div class="preview"><p>'. $description .'</p></div><a href="' . $link .'"><button class="read-more">Read More</button></a></div></div></div>';
</div><!-- end .row -->

我尝试了多种方法,但无法使其正常工作。我该怎么办?

【问题讨论】:

  • if ($row % 3 == 0) { start new section }

标签: php loops for-loop while-loop echo


【解决方案1】:

您可以检查 $x 模 3 是否为 0,然后您需要一个新行。像这样:

echo '<div class="row">';

$limit = 8;
for($x=0;$x<$limit;$x++) {
    $title = substr(str_replace(' & ', ' &amp; ', $feed[$x]['title']), 0, 60);
    $link = $feed[$x]['link'];
    $description = substr(preg_replace('/\<a.*/', '', $feed[$x]['desc']),0 , 120) . " ... ";
    $image = preg_replace('/\?w.*/', '', $feed[$x]['image']);
    $date = date('l F d, Y', strtotime($feed[$x]['date']));

    // if x is devidable by 3, start a new row
    if($x % 3 == 0 && $x != 0) echo '</div><div class="row">';

    echo '<div class="blog-item item col-md-4' . $rowOpen . '"><img src="' . $image . '"><div class="blog-item-info"><div class="title"><h3>'. $title . '</h3></div><div class="date">' . $date . '</div><div class="preview"><p>'. $description .'</p></div><a href="' . $link .'"><button class="read-more">Read More</button></a></div></div>';
}

echo '</div>';

请注意,您也在回声中关闭了一个 div ;)

【讨论】:

  • 非常感谢!正是我想要的!
猜你喜欢
  • 2011-03-22
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多