2012-03-26 2 views
0

У меня есть следующий код для создания музыкального плейлиста на основе файлов в папке. Проблема в том, что секция foreach будет эхо-запятой последней строки. Вот код ниже:PHP - Редактировать последнюю строку в foreach

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 ++; 
    } 

с линией с запятой бытийного линии 15 здесь:

  echo '},'; 

Кто-нибудь знает простое решение этого. Я ломаю голову, пытаясь узнать весь день, что ничего не имеет смысла. CHEERS!

ответ

1

Получить файлы перед петлей, и количество его, а затем проверить на каждой итерации

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

Очень умный Я попробую это –

0

Если я правильно понял, что вы хотите сделать: Постарайтесь сделать свой цикл с итератора, то вы будете в состоянии проверить, есть ли следующий объект для итерации.

Смежные вопросы