为php数组中的列表项指定唯一类

为php数组中的列表项指定唯一类,php,arrays,list,listitem,Php,Arrays,List,Listitem,我创建了一个数组,它显示一个目录(本质上是目录树)的几个子目录中的所有文件。这些文件是单击时在该目录中打开文件的所有链接 我遇到的问题是,我希望能够为我的结果设置样式,但是所有子目录和文件名都具有相同的类(因为它们是使用相同的代码生成的) 以下是我的php: <?php function listFolderFiles($dir){ $ffs = scandir($dir); echo '<ol class="song">'; foreach($ffs as $ff){

我创建了一个数组,它显示一个目录(本质上是目录树)的几个子目录中的所有文件。这些文件是单击时在该目录中打开文件的所有链接

我遇到的问题是,我希望能够为我的结果设置样式,但是所有子目录和文件名都具有相同的类(因为它们是使用相同的代码生成的)

以下是我的php:

<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol class="song">';
foreach($ffs as $ff){
    if($ff != '.' && $ff != '..'){
        echo '<li class="title">';
        if(is_dir($dir.'/'.$ff)){
            echo $ff;
            listFolderFiles($dir.'/'.$ff);
        }else{
            echo '<a href="'.$dir.'/'.$ff.'" target="_blank">'.$ff.'</a>';
        }
        echo '</li>';
    }
}
echo '</ol>';
}

listFolderFiles('Current Songs');

?>

生成的html如下所示:

<ol class="song">
<li class="title">
  Sub Directory Folder 1
<ol class="song">
    <li class="title">
    <a href="Current Songs/Song1.mp3"></a></li>
    <li class="title">
    <a href="Current Songs/Song1.pdf"></a></li>
</ol>
</li>
<li class="title">
  Sub Directory Folder 2
<ol class="song">
    <li class="title">
    <a href="Current Songs/Song2.mp3"></a></li>
    <li class="title">
    <a href="Current Songs/Song2.pdf"></a></li>
</ol class="song">
</li>

</ol>
</li>

  • 子目录文件夹1
  • 子目录文件夹2
  • 如您所见,每个条目都由2个有序列表组成,但是它们都具有相同的类,所有列表项也是如此,这使得几乎不可能对其进行任何样式设置

    我希望生成以下html标记:

    <ol class="song">
    <li class="title">
      Sub Directory Folder 1
    </li> <!--END TITLE HERE-->
    <ol>
        <li>
        <a href="Current Songs/Song1.mp3"></a></li>
        <li>
        <a href="Current Songs/Song1.pdf"></a></li>
    </ol>
    </ol> <!--END SONG OL HERE-->
    
    
    
  • 子目录文件夹1

  • 任何人都可以就我需要对代码进行哪些php更改以输出上述内容给出一些建议。

    您也可以将类名作为参数传递

    function listFolderFiles($dir,$myclass){
    $ffs = scandir($dir);
    echo '<ol class="song'.$myclass.'">';
    foreach($ffs as $ff){
    if($ff != '.' && $ff != '..'){
        echo '<li class="title'.$myclass.'">';
        if(is_dir($dir.'/'.$ff)){
            echo $ff;
            listFolderFiles($dir.'/'.$ff);
        }else{
            echo '<a href="'.$dir.'/'.$ff.'" target="_blank">'.$ff.'</a>';
        }
        echo '</li>';
    }
    }
    echo '</ol>';
    }
    listFolderFiles('Current Songs','_myclass');
    listFolderFiles('Current Songs','');
    
    函数listFolderFiles($dir,$myclass){
    $ffs=斯堪的纳维亚($dir);
    回声';
    foreach($ffs作为$ff){
    如果($ff!='.&&$ff!='.')){
    echo“
  • ”; if(is_dir($dir./'.$ff)){ echo$ff; listFolderFiles($dir.'/'.$ff); }否则{ 回声'; } 回音“
  • ”; } } 回声'; } listFolderFiles('当前歌曲','U myclass'); listFolderFiles('当前歌曲','');