PHP从文件夹中获取奇怪的图像

时间:2017-03-03 13:21:51

标签: php

如何在没有第一张图像的情况下获得<div class="hotspot-sidebar">到每秒图像(奇数)。第一张图片应该是<div class="hotspot">

我的代码:

<?php

$files = glob("pages/low/*.*");


for ($i=0; $i<count($files); $i++) {
    $image = $files[$i];
    $firstsite = $files[0];

    if($i % 2 == 0) { 
        $echo = true;
        echo '<div class="hotspot-sidebar">';
        if($image == $firstsite) {
            echo '<div class="hotspot">';
        }
    }

    $supported_file = array (
        'gif',
        'jpg',
        'jpeg',
        'png'
    );
    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
    if (in_array($ext, $supported_file)) {
            echo '<img src="'.$image .'"/>'."<br /><br />";

    } 
}
?>

谢谢你的帮助

4 个答案:

答案 0 :(得分:1)

从$ i = 1开始为() for( $ i = 1 ; $ i

答案 1 :(得分:1)

您的代码存在一些问题,

首先,你要问的是(奇数元素),尽管你要检查偶数元素

if($i % 2 == 0)

第二件事你总是回复echo '<div class="hotspot-sidebar">';,所以即使你的第一行你也会打印出这个html标签,

我使用foreach循环对您的代码进行了重新分解,在此上下文中维护起来更容易,更易读。

感谢nikos.svnk注意重要提示

foreach ($files as $i => $image) {
    if($i > 0) {
        if($i % 2 != 0) {
            echo '<div class="hotspot-sidebar">';
        }
    } else {
        echo '<div class="hotspot">';
    }

    $supported_file = array (
        'gif',
        'jpg',
        'jpeg',
        'png'
    );
    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
    if (in_array($ext, $supported_file)) {
            echo '<img src="'.$image .'"/>'."<br /><br />";

    }
}

答案 2 :(得分:1)

我用switch case解决了我的问题:

这里是我的代码:

<?php 

function isEven($pageNumber) {
    $isEven = $pageNumber % 2 == 0;
    return $isEven;
}
$files = glob("pages/low/*.jpg");
for($i=0; $i < count($files); $i++) {
    $image = $files[$i];
echo 
'<div class="page">',
'<img class="show-modal" src="'.$image .'"/>';

switch ($i): 
    case isEven($i):
        echo
            '<div class="hotspot-sidebar">',
                '<div class="goto TShirts-sidebar"></div>',
                '<div class="goto Polos-sidebar"></div>',
                '<div class="goto Sweats-sidebar"></div>',
                '<div class="goto Sports_Outdoor-sidebar"></div>',
                '<div class="goto Tradition-sidebar"></div>',
                '<div class="goto Fleece-sidebar"></div>',
                '<div class="goto Jackets_Vests-sidebar"></div>',
                '<div class="goto Shirts_Business_Trousers-sidebar"></div>',
                '<div class="goto Workwear_Safety-sidebar"></div>',
                '<div class="goto Underwear_Baby_Towels-sidebar"></div>',
                '<div class="goto Caps_Hats-sidebar"></div>',
                '<div class="goto Bags_Umbrellas_Accessories-sidebar"></div>',
            '</div>';
        break;
    case 0:
        echo
            '<div class="hotspot">',
                '<div class="goto TShirts-sidebar"></div>',
                '<div class="goto Polos-sidebar"></div>',
                '<div class="goto Sweats-sidebar"></div>',
                '<div class="goto Sports_Outdoor-sidebar"></div>',
                '<div class="goto Tradition-sidebar"></div>',
                '<div class="goto Fleece-sidebar"></div>',
                '<div class="goto Jackets_Vests-sidebar"></div>',
                '<div class="goto Shirts_Business_Trousers-sidebar"></div>',
                '<div class="goto Workwear_Safety-sidebar"></div>',
                '<div class="goto Underwear_Baby_Towels-sidebar"></div>',
                '<div class="goto Caps_Hats-sidebar"></div>',
                '<div class="goto Bags_Umbrellas_Accessories-sidebar">',  
            '</div>';
        break;
endswitch;
echo
    '</div>'; 
?>

答案 3 :(得分:0)

只需通过$ i == 0检查第一张图片,然后像这样分开处理:

$files = glob("pages/low/*.*");
$output='';

for ($i=0; $i<count($files); $i++) {

    if($i==0){
      //add hotpsot
       $output.='<div class="hotspot">';
    }
    $image = $files[$i];
    $firstsite = $files[0];

    if($i % 2 == 0 && $i>0) { 
        $output.= '<div class="hotspot-sidebar">';
    }
    $supported_file = array (
        'gif',
        'jpg',
        'jpeg',
        'png'
    );
    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
    if (in_array($ext, $supported_file)) {
            $output.='<img src="'.$image .'"/>'."<br /><br /></div>";
    } 

}
echo $output;