首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:将结果排除../ ./ /,使用excluding

PHP:将结果排除../ ./ /,使用excluding
EN

Stack Overflow用户
提问于 2015-11-12 10:26:05
回答 3查看 390关注 0票数 2

我使用scandir和foreach循环向用户显示目录中的文件列表。我的代码如下:

代码语言:javascript
复制
        $dir = scandir('/user1/caravans/public_html/wordpress/wp-content/uploads/wpallimport/files');

        foreach($dir as $directory)
{
        echo "<br/><input type='checkbox' name=\"File[]\" value='$directory'/>$directory<br>";
        }

问题是脚本也呼应了一个“。还有一个“.”(没有语音标记),是否有一个优雅的方法来删除这些?短表达式或正则表达式。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-12 10:31:37

只要继续,如果目录是...,我建议查看控件结构这里

代码语言:javascript
复制
$dir = scandir('/user1/caravans/public_html/wordpress/wp-content/uploads/wpallimport/files');

foreach($dir as $directory) {
    if( $directory == '.' || $directory == '..' ) {
        // directory is . or ..
        // continue will directly move on with the next value in $directory
        continue;
    }

    echo "<br/><input type='checkbox' name=\"File[]\" value='$directory'/>$directory<br>";
}

而不是这样:

代码语言:javascript
复制
if( $directory == '.' || $directory == '..' ) {
    // directory is . or ..
    // continue will directly move on with the next value in $directory
    continue;
}

您可以使用它的一个简短版本:

代码语言:javascript
复制
if( $directory == '.' || $directory == '..' ) continue;
票数 6
EN

Stack Overflow用户

发布于 2015-11-12 10:42:12

您可以使用array_diff消除这些目录。

代码语言:javascript
复制
$dir = scandir($path);
$dir = array_diff($dir, array('.', '..'));
foreach($dir as $entry) {
    // ...
}
票数 2
EN

Stack Overflow用户

发布于 2015-11-12 10:43:56

除了swidmann的答案之外,另一个解决方案是简单地删除“.”。还有“..”然后再对它们进行迭代。

改编自http://php.net/manual/en/function.scandir.php#107215

代码语言:javascript
复制
$path    = '/user1/caravans/public_html/wordpress/wp-content/uploads/wpallimport/files';
$exclude = ['.', '..'];
$dir     = array_diff(scandir($path), $exclude);

foreach ($dir as $directory) {
    // ...
}

这样,如果将来需要的话,还可以轻松地将其他目录和文件添加到排除的列表中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33669246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档