当我尝试获取数组内容时,我得到“数组”而不是内容

时间:2013-01-22 17:03:51

标签: php arrays string foreach

当我尝试获取数组内容时,我得到“数组”而不是内容。

foreach函数(如果它是正确的,我现在无法尝试)应该发布图片。

<?php
    $slideshowdir = "./public/all/slideshow/";
    if (is_dir($slideshowdir)) {
        if ($dh = opendir($slideshowdir)) {                             
            while (($slides = readdir($dh)) !== false) {
               $possible_slides = $slideshowdir.array($slides);
            }
        }
    }

    foreach($possible_slides as $slide){
        $picture = file($slide);
            echo $picture;
     }
?>  
编辑:对不起,我不是100%清楚。我想发布的文件是图片。

编辑:我用以下代码解决了这个问题:

<?php
    $possible_slides = array();
    $slideshowdir = "./public/all/slideshow/";
    if (is_dir($slideshowdir)) {
        if ($dh = opendir($slideshowdir)) {                             
            while (($slide = readdir($dh)) !== false) {
                if (is_file ($slideshowdir.$slide)) {
                    $possible_slides[] = $slideshowdir.$slide;
                }
            }
        }
    }

    foreach($possible_slides as $slide){
        echo '<img src="'.$slide.'">';
    }       
?>  

3 个答案:

答案 0 :(得分:2)

请阅读file()的文档。它逐行返回文件内容的数组。

您可能想要使用的是file_get_contents()

另外,你的第一个循环看起来很可疑。我想你想这样做:

<?php
$possible_slides = array();
$slideshowdir = "./public/all/slideshow/";
if (is_dir($slideshowdir)) {
    if ($dh = opendir($slideshowdir)) {                             
        while (($slide = readdir($dh)) !== false) {
           if (is_file ($slideshowdir.$slide)) {
               $possible_slides[] = $slideshowdir.$slide;
           }
        }
    }
}

foreach($possible_slides as $slide){
    $picture = file_get_contents($slide);
    echo $picture;
}

请注意,我在while循环中添加了一项检查,以确保只将文件添加到$possible_slides。这应该过滤掉子目录,以及...

答案 1 :(得分:0)

这部分看起来很简陋:$slideshowdir.array($slides)

您确定要将数组连接到字符串吗?

答案 2 :(得分:0)

变化:

$possible_slides = $slideshowdir.array($slides);

要:

$possible_slides[] = $slideshowdir.array($slides);