PHP将图像从目录导入到2列HTML行中

时间:2018-07-20 12:48:30

标签: php html

我找到了一些PHP,试图将其适应我的页面,但似乎无法使其正常工作。这是代码:

<?php

$pagetitle = "Test Gallery";
$dirname = "img/folder_1/";
$images = glob($dirname."*.jpg");

?>


<?php $i=0; foreach($images as $image): ?>
    <?php if($i%2 === 0) echo '<div class="row">' ?>
        <div class="col-sm-6">
            <img class="lazy store-img" src="IMAGE_SOURCE" alt="" title="">
            <h3>IMAGE_NAME</h3>
            <button href="#" class="btn btn-primary">Purchase Image</button>
        </div>
    <?php if($i%2 === 0) echo '</div>' ?>
<?php $i++; endforeach ?>

我正在尝试从目录中提取图像,并且每个图像都包装在.col-sm-6 div中,然后将每个2都包装在.row div中,那么如果存在奇数个文件最后一个文件本身就是一个.col-sm-6 div。以下是我要实现的结构:

<div class="row">
    <div class="col-sm-6">
       <img class="lazy store-img" src="IMAGE_SOURCE" alt="" title="">
       <h3>IMAGE_NAME</h3>
       <button href="#" class="btn btn-primary">Purchase Image</button>
    </div>
   <div class="col-sm-6">
       <img class="lazy store-img" src="IMAGE_SOURCE" alt="" title="">
       <h3>IMAGE_NAME</h3>
       <button href="#" class="btn btn-primary">Purchase Image</button>
    </div>
 </div>

<div class="row">
    <div class="col-sm-6">
       <img class="lazy store-img" src="IMAGE_SOURCE" alt="" title="">
       <h3>IMAGE_NAME</h3>
       <button href="#" class="btn btn-primary">Purchase Image</button>
    </div>
 </div>

IMAGE_NAME我要添加一些内容以拉入导入的文件名,以便它可以显示在页面上,而IMAGE_SOURCE将是图像URL,所以现在请忽略那些文本,因为我认为这不会影响?

我是PHP新手,只是似乎无法找到为什么页面上什么都没有显示,除非此代码不适合我的需要?

P.s。如果我的语法有误,我会提前道歉。

1 个答案:

答案 0 :(得分:0)

$images将被您的魔杖填充

所以基本上您只需要编辑行

<?php if($i%2 === 0) echo '</div>' ?>

收件人

<?php if($i%2 === 1) echo '</div>' ?>

下面是一个更具可读性的示例:

<?php
    $images = [
        'https://via.placeholder.com/10x50','https://via.placeholder.com/20x50','https://via.placeholder.com/30x50','https://via.placeholder.com/40x50',
        'https://via.placeholder.com/50x50','https://via.placeholder.com/60x50','https://via.placeholder.com/70x50',
    ];
?>

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css"/>
<?php
    $cols = 2; // dividable by 12 please
    for( $i = 0; $i < count($images) && $image = $images[$i]; $i++) {
        if( $i%$cols == 0 ) { echo '<div class="row">'; }

        echo '<div class="col-sm-' . 12/$cols . '">';
        echo '<img class="lazy store-img" src="' . $image . '" alt="" title="">';
        echo '<h3>IMAGE_NAME</h3>';
        echo '<button href="#" class="btn btn-primary">Purchase Image</button>';
        echo '</div>';


        if( $i%$cols == $cols-1 ) { echo '</div>'; } /* here comes the magic :) */
    }
    if( count( $images )%$cols > 0 ) {
        echo '</div>';
    }
?>