【问题标题】:scandir() with php to create ordered list from arrayscandir() 与 php 从数组创建有序列表
【发布时间】:2012-11-30 18:06:01
【问题描述】:

阅读scandir(),在显示任何内容时遇到问题。

<?php
    $dir = 'http://www.universaldynamicmedia.com/sandbox/Images';
    $array = scandir($dir);
    foreach($array as $key => $value)
        {
            echo '<li><img src="' . $dir . $value . '" /></li>';
        }
?>

我想我没有对目录和scandir() 做其他事情,我以前做过,它工作正常。

目录权限会导致问题吗?

【问题讨论】:

    标签: php scandir


    【解决方案1】:

    ** 请注意,您不能使用 URL,您必须有权访问文件夹/文件

    scandir():

    $dir = "PATH_TO_DIRECTORY";
    $exclude = array( ".","..","error_log","_notes" );
    if (is_dir($dir)) {
        $files = scandir($dir);
        foreach($files as $file){
            if(!in_array($file,$exclude)){
                echo '<li><img src="' . $dir . $file . '" /></li>';
            }
        }
    }
    

    readdir():

    $dir = "PATH_TO_DIRECTORY";
    $exclude = array( ".","..","error_log","_notes" );
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
                if(!in_array($file,$exclude))
                     echo '<li><img src="' . $dir . $file . '" /></li>';
            }
            closedir($dh);
        }
    }?>
    

    【讨论】:

    • 不是scandir() 他没有。你说的是readdir()
    【解决方案2】:

    scandir() 仅适用于本地文件系统,您需要将其更改为:

    $dir = '/path/to/document/root/sandbox/Images';
    

    【讨论】:

    • 嗯,这是一个iis,所以我希望这是一个windows服务器。
    • 那是实际的文件系统路径? C:/my/directory/root/sandbox/images?
    • @Plummer:是的,应该是这样。请务必附加斜杠。
    • @Axil:甜蜜。谢谢。我假设该目录也需要 IIS 用户权限?
    • @Plummer:我对 IIS 一无所知,但它应该需要某种读取权限,是的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-23
    • 2020-11-24
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多