适用于if&如果别的

时间:2017-09-03 12:17:06

标签: php if-statement

我有5张名为 1.png,2.png,3.png,4c.png和& 5.png

我希望在PHP中显示此图像,如this,但它显示为this

我的代码是: -

<div class="row">
<?php 
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):
    if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png"))

        continue; // Skip this iteration if it can't find the file 
    ?>
    <div class="col-md-2">
      <div class="thumbnail">
        <a href="<?php echo $details . $i;?>.php">
          <img src="<?php echo $images;?><?php echo $i;?>.png" alt="<?php echo $i;?>">
        </a>
      </div>
    </div>
<?php endfor; ?>

<?php 
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):
    if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i."c.png"))

        continue; // Skip this iteration if it can't find the file 
    ?>
    <div class="col-md-2">
      <div class="thumbnail">
        <a href="<?php echo $details . $i;?>.php">
          <img src="<?php echo $images;?><?php echo $i;?>c.png" alt="<?php echo $i;?>">
        </a>
      </div>
    </div>
<?php endfor; ?>

</div>

可以在ifelseif中进行更改。

want,但is

3 个答案:

答案 0 :(得分:2)

替代解决方案:

如果图像名称发生变化,例如添加不同的后缀,那么您将始终遇到问题。&#39; c&#39;。您不必关心图像名称。我们需要关心的是,始终以数字开头。

  

获取图片名称 - &gt;转换为数组 - &gt;排序 - &gt;输出

试试这个:

<?php
   //Put this part to top of your page 

   $path = "/downloads/vf/images/";

   //1. get all imagenames
   $images = array_diff(scandir($path), ['.', '..']);

   //2. sort numerically, string after the first numerical-char will be ignored
   if (count($images) > 0)
       sort($images);
   } 
?>
//3. output
<div class="row">
  <?php for($i = 0; $i < count($images); $i++): ?>
    <?php if (file_exists($images[$i])): ?>
      <div class="col-md-2">
        <div class="thumbnail">
          <a href="<?php echo $details . $i;?>.php">
            <?php echo sprintf("<img src='%s%s' alt='%s'>", $path, $images[$i], $i); ?>
          </a>
        </div>
      </div>
    <?php endif; ?>
  <?php endfor; ?>
</div>

这适用于以下所有图像名称:

1.png, 2.png, 3.png, 4c.png, 5a.jpg, 6x.png....n

答案 1 :(得分:0)

更改名称&#34; 4c.png&#34; 4.png中的图像或遵循此代码

<?php 
$images = "/downloads/vf/images/";
for ($i = 1; $i <= 5; $i++):

    if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i."c.png")){
        $img = $i."c";
    }

    else if (!file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png")){
        $img = $i;
    }
    else{
        continue; // Skip this iteration if it can't find the file 
    }

    // just for test
    echo $images. $img.".png <br>";
    ?>
    <div class="col-md-2">
      <div class="thumbnail">
        <a href="<?php echo $details . $i;?>.php">
          <img src="images/<?php echo $img;?>.png" alt="<?php echo $i;?>">
        </a>
      </div>
    </div>
<?php endfor; ?>

bytheway,我只是让你的代码工作,但有更好的方法来做到这一点

答案 2 :(得分:0)

我认为这对你有用 它将检查文件名是否作为数字存在并回显它,然后查看它是否存在为&#34; c&#34;图像和回声。
我没有添加所有HTML,因为我在手机上输入了这个,但你应该能够看到答案的概念&#34;。

For($i=0;$i<5;$i++){
    $imgC =  $i . "c";

    if (file_exists($_SERVER['DOCUMENT_ROOT'].$images.$i.".png")){
        //Echo image 
    }
    if (file_exists($_SERVER['DOCUMENT_ROOT'].$images.$imgC.".png")){
        //Echo imageC
    }

}