[英]PHP Glob, exclude directories containing .files in their name
我正在使用glob在索引文件所在的當前目錄中查找目錄。 在其中,我保存了從EXCEL提取的html頁面,它們創建了以.files結尾的文件夾目錄。是否有辦法遍歷所有目錄但排除以.files結尾的目錄?
這是我目前的代碼:
<?php
// set to current directory
$dir = '';
// directories only. ignore files, etc.
foreach(glob($dir.'*', GLOB_ONLYDIR) as $folder){
// do not include wordpress directories
if (($folder != '*') && ($folder != 'ΦΥΛΑΚΕΣ ΠΡΑΤΗΡΙΩΝ.files') && ($folder != 'wp-includes')) {
// list directories and their links
?>
<li><a href="<?php echo $dir."/files/".$folder;?>"><?php echo $folder;?></li>
<?php
}
}
?>
編輯:如您所見,我可以排除指定的文件夾,但是我希望它自動排除以.files結尾的所有文件夾,正如我所說。
您可以使用substr -function執行以下操作:
<?php
// set to current directory
$dir = '';
// directories only. ignore files, etc.
foreach( glob( $dir.'*', GLOB_ONLYDIR ) as $folder ){
// do not include wordpress directories
if( ($folder != '*') && (substr( $folder , -6 ) != '.files') && ($folder != 'wp-includes') ){
// list directories and their links
?>
<li>
<a href="<?php echo $dir."/files/".$folder;?>"><?php echo $folder;?></a>
</li>
<?php
}
}
?>
我寧願使用preg_grep函數
$src = glob("*",GLOB_ONLYDIR);
$nomatch = preg_grep("/.*\.files$|^wp\-includes$/i",$src,PREG_GREP_INVERT);
foreach($nomatch as $folder)
{
echo "print ".$folder;
}
選擇后的格式很簡單
很抱歉,我的信息不正確,我在這里寫
<?php
$cur = getcwd();
chdir($dir);
$src = glob("*",GLOB_ONLYDIR);
chdir($cur);
$nomatch = preg_grep("/.*\.files$|^wp\-includes$/i",$src,PREG_GREP_INVERT);
foreach($nomatch as $folder)
{
?>
<li><a href="<?php echo $dir."/files/".$folder;?>"><?php echo $folder;?></li>
<?php
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.