2010-02-12 2 views
0

Новое на php.Создать плейлист, используя php и getid3

Я использую скрипт php для создания списка воспроизведения, первая запись песни в списке пуста для всех полей (artist, title, length, filename). Зачем?

Вот сценарий

<?php 

require_once('getid3/getid3.php'); 

$dir = 'mp3'; 
$file_type = 'mp3'; 

$play_list = '<?xml version="1.0" encoding="utf-8"?><config>'; 


if (is_dir($dir)) { 

if ($dh = opendir($dir)) { 

while (($file = readdir($dh)) !== false) { 

if ($file != '.' && $file != '..') { 

$name_array = explode('.', $file); 


if ($name_array[1] == $file_type) { 

$play_list .= '<song>'; 

$file = "$dir/$file"; 

$getID3 = new getID3; 

    $ThisFileInfo = $getID3->analyze($file); 

    getid3_lib::CopyTagsToComments($ThisFileInfo); 


     $play_list .= '<artist>'.$ThisFileInfo['comments_html']['artist'][0] . '</artist>'; 

     $play_list .= '<title>'. $ThisFileInfo['tags']['id3v2']['title'][0]. '</title>'; 

    $new_playtime = ereg_replace("[^A-Za-z0-9]", "", $ThisFileInfo['playtime_string']); 

    $play_list .= '<length>'.$new_playtime . '</length>'; 
    $play_list .= '<fileName>'.$file.'</fileName>'; 



$play_list .= '</song>'; 

} 

} 

} 

closedir($dh); 

$play_list .= '</config>'; 

echo "$play_list"; 

} 

} 


    ?> 

А вот как выглядит Ouput.

 <?xml version="1.0" encoding="utf-8"?> 
    <config> 

    <song><artist></artist><title></title><length></length><fileName>mp3/air - all i need.mp3</fileName></song> 

<song><artist>Air</artist><title>Remember</title><length>234</length><fileName>mp3/air - remember.mp3</fileName></song> 

<song><artist>Air</artist><title>You Make It Easy</title><length>401</length><fileName>mp3/air - you make it easy.mp3</fileName></song> 

<song><artist>Ian Brown</artist><title>Dolphins Were Monkeys (Single Version)</title><length>258</length><fileName>mp3/Ian Brown - Dolphins Were Monkeys.mp3</fileName></song> 

<song><artist>Ian Brown</artist><title>F.E.A.R.</title><length>431</length><fileName>mp3/Ian Brown - Fear.mp3</fileName></song> 

<song><artist>Ian Brown</artist><title>Keep What Ya Got</title><length>348</length><fileName>mp3/Ian Brown - Keep What Ya Got.mp3</fileName></song> 

<song><artist>Ian Brown</artist><title>My Star</title><length>509</length><fileName>mp3/Ian Brown - My Star.mp3</fileName></song> 

<song><artist>Ian Brown</artist><title>Time Is My Everything</title><length>354</length><fileName>mp3/Ian Brown - Solarized - 02 - Time Is My Everything.mp3</fileName></song></config>  

ответ

2

поле имя файла не является пустым: <song><artist></artist><title></title><length></length><fileName>mp3/air - all i need.mp3</fileName></song>

Может быть, это только потому, что теги ID3 не установлены для «все я need.mp3»?

P.S: вы должны использовать pathinfo с PATHINFO_EXTENSION вместо explode, потому что, если песня содержит несколько точек, она не будет соответствовать.

0

Попробуйте использовать glob(), чтобы получить файлы. http://us.php.net/manual/en/function.glob.php

$files = glob($dir . '/*.mp3'); 

foreach ($files as $file) { 
... 
} 

Используйте PathInfo(), чтобы получить информацию о расширение файла.

Хотя, если вы используете функцию glob() выше, вам не нужно будет, так как * .mp3 будет уже фильтровать mp3-файлы.

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