2012-03-26 6 views
0

Ich habe den folgenden Code, um eine Musik-Playlist basierend auf Dateien in einem Ordner zu erstellen. Das Problem ist, dass der Foreach-Bereich das Komma der letzten Zeile wiedergibt. Hier ist der Code unter:PHP - Letzte Zeile in foreach bearbeiten

echo '<script type="text/javascript"> 
       $(document).ready(function(){ 
        new jPlayerPlaylist({ 
         jPlayer: "#jquery_jplayer_'. $counter .'", 
         cssSelectorAncestor: "#jp_container_'. $counter .'" 
        }, ['; 

      foreach(glob('files/'. $dir .'/*.mp3') as $file) { 
       $filename = $file; 
       $parts = Explode('/', $filename); 
       $filename = $parts[count($parts) - 1]; 
       echo '{'; 
       echo 'title:"'. $filename .'",'; 
       echo 'mp3:"'.$file.'",'; 
       echo '},'; 
      } 
      echo' 
       ], { 
        swfPath: "js", 
        supplied: "oga, mp3", 
        wmode: "window" 
        }); 
       }); 
      </script>'; 
      $counter ++; 
    } 

mit der Zeile mit dem Komma Wesen Linie 15 hier:

  echo '},'; 

Hat jemand eine einfache Lösung für dieses Problem kennen. Ich habe mir den Kopf zerbrochen und versucht den ganzen Tag herauszufinden, dass nichts mehr Sinn macht. PROST!

Antwort

1

die Dateien vor dem Loop importieren, und die Zählung davon, überprüfen Sie dann bei jeder Iteration

$files = glob('files/'. $dir .'/*.mp3'); 
$fCnt = count($files); 
foreach($files as $i => $file) { 
    -- SNIP -- 
    echo '}' . ($i != $fCnt - 1 ? ',' : ''); 
} 
+0

Sehr schlau Ich werde es versuchen –

0

Wenn ich das richtig verstanden, was Sie tun möchten: Versuchen Sie, Ihre Schleife mit Iterator zu machen, dann werden Sie in der Lage zu überprüfen, ob das nächste Objekt zu iterieren ist.