【问题标题】:PHP iterate over directory filesPHP遍历目录文件
【发布时间】:2013-12-03 08:21:36
【问题描述】:

我有这个简单的代码

if ($hdcss = opendir($javascript)) {

    while (false !== ($cssentry = readdir($hdcss))) {
        echo "$cssentry\n";
    }

    closedir($hdcss);
}

这将给出所有文件...因为我将通过 Ajax 得到它,所以我想做的是返回一个 li 元素的 html 字符串,只有 JavaScript 方法是一个 for 循环,不确定这是否在 php 中完成使用 opendir,因为这是我第一次使用它...

JavaScript 方法:

var arry = [];

for(i=0;i<cssentry.length;i++){
    arry.push('<li>'+cssentry[i]+'</li>');
}

return arry.join(',');

如果有任何建议,我会采纳。

目录路径:

$javascript = "/cloud/'$username'/javascript/";
$css = "/cloud/'$username'/css/";

【问题讨论】:

    标签: javascript php filesystems readdir opendir


    【解决方案1】:

    您可以使用 JSON 格式来交流 Javascript 和 PHP

    <?php
        if ($hdcss = opendir("/tmp")) {
            $files = array();
            while (false !== ($cssentry = readdir($hdcss))) {
                // you dont want those two
                if ($cssentry != "." && $cssentry != "..") {
                    $files[] = $cssentry;
                }
            }
            closedir($hdcss);
            echo json_encode($files);
        }
    ?>
    

    然后你会在 javascript 中得到结果

    ["mydir1", "mydir2", "mydir3"]
    

    您可以像这样将数组打印到 javascript 变量中

    var arry = <?php echo json_encode($files); ?>;
    

    或使用 ajax 获取它

    【讨论】:

    • 好的,所以我不确定为什么这也不起作用...我已经更新了原始帖子以显示我的目录
    【解决方案2】:

    目录路径:

    $javascript = "/cloud/'$username'/javascript/";
    $css = "/cloud/'$username'/css/";
    

    目录路径正确...不需要第一个正斜杠

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2017-05-20
      • 1970-01-01
      • 2018-03-17
      • 2015-03-05
      相关资源
      最近更新 更多