-2

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

然后 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.'">';
    }       
?>  
4

3 回答 3

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. 这应该过滤掉子目录,以及...

于 2013-01-22T17:07:48.110 回答
0

这部分看起来很奇怪:$slideshowdir.array($slides)

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

于 2013-01-22T17:10:34.407 回答
0

改变:

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

到:

$possible_slides[] = $slideshowdir.array($slides);
于 2013-01-22T17:22:44.093 回答