php scandir循环顺序修正

时间:2012-09-29 17:46:51

标签: php directory scandir

请帮助解决这个PHP代码:

<?php

function listFolderFiles($dir){
  static $level = 0;
  $level++;
  $ffs = scandir($dir);
  foreach($ffs as $ff){
        echo "<div id=\"datalist\">";

    if($ff != '.' && $ff != '..'){
      if(is_dir($dir.'/'.$ff)) {
        $h_start = ($level < 6) ? "<h".($level+1). "class=\"multiple\">" : "<h6><div id=\"list_wrapper\">"; 
        $h_close = ($level < 6) ? "</h".($level+1)."> " : "</h6>"; 
        echo $h_start.$ff.$h_close; 
  echo '<ul class="multiple_columns">';

        listFolderFiles($dir.'/'.$ff);
      } else {
        echo "<li><a href=\"$dir/$ff\">$ff</a></li>";
      }
    }
      echo '</ul></div>';
  }
  echo '</div>';
  $level--;
}

listFolderFiles('../Secure');

?>

我需要以这种方式组织输出目录:

   <div id="datalist">
      <h2 class="multiple">
      <h3> where applicable
         <div id="list_wrapper">
         <ul class="multiple_columns">
            <li><a href="#">link</a></li>
         </ul>
         </div>
   </div>

我不是很熟悉php ...你可以告诉:)
尝试了不同的变种,但输出总是乱码。
寻求一些帮助,使它按正确的顺序排列。
感谢您的意见。谢谢!

1 个答案:

答案 0 :(得分:0)

更改

$h_start = ($level < 6) ? "<h".($level+1). "class=\"multiple\">" : "<h6><div id=\"list_wrapper\">";

用这个

$h_start = ($level < 6) ? "<h".($level+1). " class=\"multiple\">" : "<h6><div id=\"list_wrapper\">"; 

你的代码生成h1class,h2class,...标签,这不是正确的!