使用PHP从目录中读取图像

时间:2010-08-22 03:20:18

标签: php wordpress

我想知道WordPress中的PHP是否可以实现以下功能。

基本上,如果我的网站中有一个名为“promos”的目录,其中包含1到多个图像(因为这些图像可以更改),我想从PHP文件中读取到旋转木马设置,即类似的东西对此:

   <div class="scrollable" id="browsable">   

   <div class="items"> 

          <?php 
            $tot_images_from_promo_dir = [get_total_image_count_in_promos_dir]; 

            for ( $counter = 1; $counter <= $tot_images_from_promo_dir; $counter ++) {
                echo "<div>";
                    echo "<a href="#"><img src="[image_from_promo_directory]" /></a>
                echo "</div>";
            }
          ?>
    </div>
</div>

基本上想用某种方式用php读取我的促销目录中的图像总量,然后在我的循环最大值中使用这个总数并读取促销目录中的每个图像文件名并传递到我的<img src=[image_name_from_promo_dir]

6 个答案:

答案 0 :(得分:12)

假设promos目录中的所有文件都是图像:

<div class="scrollable" id="browsable">   
   <div class="items"> 
      <?php 
        if ($handle = opendir('./promos/')) {

            while (false !== ($file = readdir($handle))) {
                echo "<div>";
                    echo "<a href='#'><img src='".$file."' /></a>";
                echo "</div>";
            }
            closedir($handle);
        }
      ?>
    </div>
</div>

但是,如果目录中的文件不是图像,则需要在显示之前进行检查。 while循环需要更改为:

while (false !== ($file = readdir($handle))) {
    if ((strpos($file, ".jpg")) || (strpos($file, ".gif"))) {
        echo "<div>";
            echo "<a href='#'><img src='".$file."' /></a>";
        echo "</div>";
    }
}

答案 1 :(得分:1)

我的方法opendir

<div class="scrollable" id="browsable">   
<div class="items"> 

<?php
    $c=0;
    if ($handle = opendir('promo')) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                $images[$c] = $file;
                $c++;
            }
        }
        closedir($handle);
    }

    for ($counter = 0; $counter <= count($images); $counter ++) {
        echo "<div>";
            echo '<a href="#"><img src="'.$image[$counter].'" /></a>';
        echo "</div>";
    }
          ?>
    </div>
</div>

答案 2 :(得分:0)

你去http://www.php.net/manual/en/ref.dir.php并特别关注scandir函数。你可以使用类似的东西:

$images = array();
foreach (scandir('somewhere') as $filename)
    if (is_an_image($filename)) $images[] = $filename;

你可以编写is_an_image()函数。

答案 3 :(得分:0)

DirectoryIterator类怎么样?

<div class="scrollable" id="browsable">   
    <div class="items"> 
        <?php foreach (new DirectoryIterator('folder/goes/here') as $file): ?>
        <?php if($file->isDot || !$file->isReadable()) continue; ?>

            <div><a href="#"><img src="filepath/<?php echo $file->getFilename(); ?>" /></a></div>

          <?php endforeach; ?>
    </div>
</div>

答案 4 :(得分:0)

我使用glob进行此类操作

<div class="scrollable" id="browsable">   

   <div class="items"> 

          <?php 
            $images = glob("path_to_folder/*.{gif,jpg,png}", GLOB_BRACE);

            for ( $counter = 1; $counter < sizeof($images); $counter ++) {
                echo "<div>";
                    echo '<a href='#'><img src=".$images[$counter]." /></a>';
                echo "</div>";
            }
          ?>
    </div>
</div>

答案 5 :(得分:0)

此代码将提供名为“imagfolder”

的目录中的图像
if($handle = opendir(dirname(realpath(__FILE__)).'/imagefolder/')){
                while($file = readdir($handle)){
                    if($file !== '.' && $file !== '..')
                    {
                        echo '<div id="images">';
                        echo '<img src="imagefolder/'.$file.'" border="0" />';
                        echo '</div>';
                    }
                }
                closedir($handle);
        }