gpt4 book ai didi

php - RecursiveDirectoryIterator 删除点文件夹

转载 作者:可可西里 更新时间:2023-11-01 14:01:49 26 4
gpt4 key购买 nike

目前我有下面的代码,什么是我能够在下面的代码中设置标志以便我可以使用 ::SKIP_DOTS 的最佳方式?

代码:

  $folder = 'images/banner_img';?>

<?php foreach( new RecursiveIteratorIterator(new RecursiveDirectoryIterator($folder)) as $filename): ?>
<?php $fileTypes = array("db");
$fileType = pathinfo($filename,PATHINFO_EXTENSION);

if(!in_array(strtolower($fileType), $fileTypes)):?>


<img src="<?php echo $filename; ?>" alt="" title="" data-thumb="<?php echo $filename;?>" />

<?php endif;?>

<?php endforeach;?>

最佳答案

设置 RecursiveDirectoryIterator::SKIP_DOTS as an option (in the second parameter) new RecursiveDirectoryIterator() 应该足以处理您当前的代码。

对于 PHP 5.3+,您可以选择将 RecursiveDirectoryIterator 声明为其自己的变量,然后对该变量调用方法:

$iterator = new RecursiveDirectoryIterator($folder);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
// Still need to pass $iterator to a RecursiveIteratorIterator...

setFlags() 是一种方法 inherited from the FilesystemIterator base class .

但由于您已经在使用模板格式 foreach:/endforeach; 样式,因此只在嵌套声明中执行此操作而不是使用其他变量是有意义的。

<!-- Instead, stick with your current iterator declaration and -->
<!-- add RecursiveDirectoryIterator::SKIP_DOTS as the 2nd param to its constructor -->
<?php foreach( new RecursiveIteratorIterator(new RecursiveDirectoryIterator($folder, RecursiveDirectoryIterator::SKIP_DOTS)) as $filename): ?>
<!-------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->

关于php - RecursiveDirectoryIterator 删除点文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27955770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com