图像不会显示RecursiveDirectoryIterator

时间:2014-05-15 14:00:18

标签: php html wordpress

我不知道这应该是什么名称。我在下面遇到这个问题。

我正在使用此

$dataDir  = dirname(__FILE__).'/thumbnails/';

$rdi = new RecursiveDirectoryIterator( $dataDir ); 
$it = new RecursiveIteratorIterator($rdi);

            <?php foreach($it as $oneThing) { ?>        

            <?php       if (is_file($oneThing)) { ?>

            <?php       
                            $parent_info = $it->getFilename();

                            $temp = explode( '.', $parent_info );
                            $ext = array_pop( $temp );
                            $name = implode( '.', $temp );  

                            $filter1 = str_replace("thumbnail"," ",$name);                      
                            $filter2 = preg_replace('/[^a-zA]/','_', $filter1); 

                            $dirName = rtrim($filter2, '_');    
                            $dirName2 = preg_replace('/[^a-zA]/',' ', $dirName);    
                            $text_title = ucwords(strtolower($dirName2));
                            $text_category = ucwords(strtolower($rdi));

            ?>
                            <div class="portfolio <?php echo $rdi; ?>" data-cat="<?php echo $rdi; ?>">
                            <a href="single-gallery.php?imgcat=<?php echo $rdi; ?>&dirname=<?php echo $dirName; ?>">
                                <div class="portfolio-wrapper">             
                                    <img src="<?php echo $oneThing; ?>" alt="" />
                                    <div class="label">
                                        <div class="label-text">
                                            <a class="text-title"><?php echo $text_title;  ?></a>
                                            <span class="text-category"><?php echo $text_category; ?></span>
                                        </div>
                                        <div class="label-bg"></div>
                                    </div>
                                </div>
                            </a>    
                            </div>              

            <?php       }    ?>

                <?php }  ?>     

获取目录和子目录上的图像。但是我无法显示图像。

我在wordpress网站设置了这个。

这是将生成的链接。

<img src="/home/content/10/11383810/html/alteverswp/wp-content/themes/canvas/thumbnails/custom/cr_indian_wells/cr_indian_wellsthumbnail(1).jpg" alt="">

正确显示图像的正确方法可能是什么。

2 个答案:

答案 0 :(得分:1)

您使用绝对路径而不是相对路径。这是一个有效的例子:

function directoryScan($dir, $onlyfiles = false, $fullpath = false) {
    if (isset($dir) && is_readable($dir)) {
        $dlist = Array();
        $dir = realpath($dir);
        if ($onlyfiles) {
            $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
        } else {
            $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::SELF_FIRST);
        }

        foreach($objects as $entry => $object){ 
            if (!$fullpath) {
                $entry = str_replace($dir, '', $entry);
            }

            $dlist[] = $entry;
        }

        return $dlist;
    }
}

// return contents of ‘Folder’ – Relative Paths and Only Files.
$result = directoryScan('folder', false, true);

答案 1 :(得分:0)

使用$ it-&gt; getType();获得像jpg&#39;。

这样的延伸

再一次思考绝对路径&#39; &#39;相对路径&#39;。 例如: 网址http://test/image.jpg

ABSOLUTE C:\xampp\htdocs\test\image.jpg

RELATIVE \test\image.jpg(何时在\ htdocs中执行scandir)

进入浏览器,使用Firebug查看加载图像的位置。

查看/home/..之前的部分是否存在错误。

然后你必须改变你的脚本, 生成正确的URL_PATH。

你脚本中最大的错误是: 使用$ it-&gt; getFilename();当你必须使用$ oneThing-&gt; getFilename();

看这里(第一个例子): http://www.php.net/manual/de/class.recursiveiteratoriterator.php

了解“recursiveiteratoriterator”的方式&#39; 和&#39; splfileobject&#39;在继续之前工作。

希望有所帮助!