目前,我有下面的代码,这将是我能够在下面的代码中设置标志的最好方法,这样我就可以使用::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;?>发布于 2015-01-15 03:05:46
将RecursiveDirectoryIterator::SKIP_DOTS 作为选项(在第二个参数中)设置为new RecursiveDirectoryIterator()应该足以处理当前代码。
使用PHP,您可以将5.3+声明为自己的变量,然后对该变量调用一个方法:
$iterator = new RecursiveDirectoryIterator($folder);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
// Still need to pass $iterator to a RecursiveIteratorIterator...setFlags()是一种方法基类。
但是,由于您已经在使用模板格式化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): ?>
<!-------------------------------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->发布于 2020-06-13 15:39:32
::SKIP_DOTS标志在一些机器上引发了一个错误GET / - Uncaught Error: Undefined class constant 'SKIP_DOTS'。
替代波纹管跳过隐藏文件夹、隐藏文件和导航点. ..
$cwd = './targetdir';
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($cwd), RecursiveIteratorIterator::SELF_FIRST );
// Skip hidden directories and hidden files
foreach ( $iterator as $path ) {
if(!$path->isFile()) continue;
$dirname = explode("/",$path->__toString());
$dirname = substr($dirname[count($dirname)-2], 0, 1);
if($dirname === ".") continue;
if(substr($path->getFilename(), 0, 1) === ".") continue;
if ($path->isDir()) {
print($path->__toString() . "<br>");
} else {
print($path->__toString() . "<br>");
}
}https://stackoverflow.com/questions/27955770
复制相似问题