Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Необходим пример скрипта


Рекомендуемые сообщения

Необходим пример не большого скрипта отображающего на странице листинг mp3 файлов находящихся в

папке со скриптом.

В принципе не столько необходим сам листинг как чтение id3 тэгов и отображение их рядом с mp3

файлами.

Слышал что можно это сделать с помощью PHP классов или при помощи скрипта getID3() но как ими

пользоваться я так и не разобрался :)

Прошу знающих людей привести пример данного скрипта.

На данном скриношоте http://www.tvhotu.ru/script.jpg вы можете посмотреть что именно мне необходимо.

Заранее спасибо всем кто откликнется !!!

Ссылка на комментарий
Поделиться на другие сайты

Нашел этот скрипт... сам не пробувал

<?class ID3v1x { var $file_name; //--- Tag Vars. var $tag; var $title; var $artist; var $album; var $year; var $comm; var $track; var $genre; function ID3v1x($inputfile) {$this->file_name = $inputfile; } //--- ID3v1.x Read Tag Function function read_tag() {$file = fopen($this->file_name, "rb");if($file == false) {  return false;}else {  fseek($file, -128, SEEK_END);  $this->tag = fgets($file, 4);  if($this->tag == 'TAG') {	$this->title = fgets($file, 31);	$this->artist = fgets($file, 31);	$this->album = fgets($file, 31);	$this->year = fgets($file, 5);	$this->comm = fgets($file, 29);	$this->temp = fgets($file, 2);	$this->track = fgets($file, 2);	$this->track = hexdec(bin2hex($this->track));	$this->genre = fgets($file, 2);	$this->genre = hexdec(bin2hex($this->genre));	$genre_list = array("Blues","ClassicRock","Country","Dance","Disco","Funk","Grunge","HipHop","Jazz",	  "Metal","NewAge","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno",	  "Industrial","Alternative","Ska","DeathMetal","Pranks","Soundtrack","Euro-Techno",	  "Ambient","TripHop","Vocal","Jazz-Funk","Fusion","Trance","Classical","Instrumental",	  "Acid", "House", "Game", "SoundClip", "Gospel", "Noise", "Alt.Rock", "Bass", "Soul", "Punk",	  "Space", "Meditative", "InstrumentalPop", "InstrumentalRock", "Ethnic", "Gothic", "Darkwave",	  "Techno-Industrial", "Electronic", "Pop/Folk", "Eurodance", "Dream", "SouthernRock", "Comedy",	  "Cult", "GangstaRap", "Top40", "ChristianRap", "Pop/Funk", "Jungle", "NativeAmerican", "Cabaret",	  "NewWave", "Psychedelic", "Rave", "Showtunes", "Trailer", "Lo-fi", "Tribal", "AcidPunk",	  "AcidJazz", "Polka", "Retro", "Musical", "Rock'n'Roll", "HardRock", "Folk", "Folk/Rock",	  "NationalFolk","Swing", "FastFusion", "Bebob", "Latin", "Revival", "Celtic", "BlueGrass",	  "AvantGarde", "GothicRock", "ProgressiveRock", "PsychedelicRock", "SymphonicRock",	  "SlowRock", "BigBand", "Chorus", "EasyListening", "Acoustic", "Humour", "Speech", "Chanson",	  "Opera", "ChamberMusic", "Sonata", "Symphony", "BootyBass", "Primus", "PornGroove", "Satire",	  "SlowJam", "Club", "Tango", "Samba", "Folklore", "Ballad", "PowerBallad", "RhythmicSoul",	  "Freestyle", "Duet", "PunkRock", "DrumSolo", "Euro-House", "DanceHall", "Goa", "Drum&Bass",	  "Club-House", "Hardcore", "Terror", "Indie", "BritPop", "Negerpunk", "PolskPunk", "Beat",	  "ChristianGangstaRap", "HeavyMetal", "BlackMetal", "Crossover", "ContemporaryChristian",	  "ChristianRock", "Merengue", "Salsa", "ThrashMetal","Anime","JPop","SynthPop");	$this->genre = @$genre_list[$this->genre];	return true;  }  else {	$this->tag = 'Not found tag informations!';	return true;  }}fclose($file); } //--- End : ID3v1.x Read Tag Function //--- ID3v1.x Write Tag Function function write_tag($tip=1, $wtitle, $wartist, $walbum, $wyear, $wcomm, $wtrack, $wgenre) {$file = fopen($this->file_name, "r+b");if($file == false) {  return false;}else {  if($tip == 1) {	fseek($file, -128, SEEK_END);	fputs($file, 'TAG', 3);	fputs($file, str_pad($wtitle, 30), 30);	fputs($file, str_pad($wartist, 30), 30);	fputs($file, str_pad($walbum, 30), 30);	fputs($file, str_pad($wyear, 4), 4);	fputs($file, str_pad($wcomm, 28), 28);	fputs($file, str_pad(chr('null'), 1), 1);	fputs($file, str_pad(chr($wtrack), 1), 1);	fputs($file, str_pad(chr($wgenre), 1), 1);	return true;  }  else if($tip == 2) {	fseek($file, -128, SEEK_END);	$empty = chr('null') . chr('null') . chr('null');	fputs($file, $empty, 3);	return true;  }}fclose($file); } //--- End : ID3v1.x Write Tag Function}//--- ID3v1.x Read/Write Class ---///--- Example ---//$mp3_file = "Baris Manco - Hal Hal.mp3";$ID3 = new ID3v1x($mp3_file);if($ID3->read_tag() == true) { echo "-] : File : $mp3_file<br>"; echo "-] : ----------------------------------<br>"; echo "-] : ID3v1 : $ID3->tag<br>"; echo "-] : Title : $ID3->title<br>"; echo "-] : Artist : $ID3->artist<br>"; echo "-] : Album : $ID3->album<br>"; echo "-] : Year : $ID3->year<br>"; echo "-] : Comment : $ID3->comm<br>"; echo "-] : Track : $ID3->track<br>"; echo "-] : Genre : $ID3->genre<br>"; echo "-] : ----------------------------------<br>";}else { echo "Error!";}//--- Example ---//?> 

P.S. Встроенная функция getID3() у PHP нету....

Ссылка на комментарий
Поделиться на другие сайты

В данном скрипте не реализован листинг mp3 файлов, имена файлов указываются вручную прямо в коде скрипта :dontgetit:

$mp3_file = "Baris Manco - Hal Hal.mp3";

К тому же он работает только с тэгами id3v1.

Ссылка на комментарий
Поделиться на другие сайты

вы сказали что сам листинг для вас не проблем, так что я просто поискал скрипт для вывода ID3 тэгов...

Да, работаеть с id3v1

Ладно, нашел еще изходники ( опять на phpclasses.org ), надеюсь помогуть

http://www.phpclasses.org/browse/file/2185.html

http://www.phpclasses.org/browse/file/5754.html

Ссылка на комментарий
Поделиться на другие сайты

Я всё таки остановил свой выбор на скрипте getid3. Сделал всё что нужно: листинг, тэги.

Но теперь возникла проблема с кодировкой :D

При смене в файле getid3/getid3.php кодировки c 'ISO-8859-1' на 'Windows-1251'

var $encoding		= 'Windows-1251';   // CASE SENSITIVE! - i.e. (must be supported by iconv())									   // Examples:  ISO-8859-1  UTF-8  UTF-16  UTF-16BEvar $encoding_id3v1  = 'Windows-1251';   // Should always be 'ISO-8859-1', but some tags may be written in other encodings such as 'EUC-CN'

получаю сообщение "Processing . . . .PHP does not have iconv() support - cannot convert from Windows-1251 to UTF-8"

Подскажите пожалуйста как это можно исправить.

Забыл указать версию скрипта getid3() v1.7.7

http://getid3.sourceforge.net

Ссылка на комментарий
Поделиться на другие сайты

Вместо Windows-1251 попробуйте cp1251

P.S. под какой ОС работаете

ВОзможно нужно установить libiconv

Installation

To use functions provided by this module, the PHP binary must be built with the following configure line: --with-iconv[=DIR].

Note to Windows® Users: In order to enable this module on a Windows® environment, you need to put a DLL file named iconv.dll or iconv-1.3.dll (prior to 4.2.1) which is bundled with the PHP/Win32 binary package into a directory specified by the PATH environment variable or one of the system directories of your Windows® installation.

This module is part of PHP as of PHP 5 thus iconv.dll and php_iconv.dll is not needed anymore.

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

Вместо Windows-1251 попробуйте cp1251

P.S. под какой ОС работаете

ВОзможно нужно установить libiconv

Вместо Windows-1251 попробуйте cp1251

P.S. под какой ОС работаете

ВОзможно нужно установить libiconv

Сменил Windows-1251 на CP1251, результат тот же.

Судя по информации с phpinfo библиотека iconv установлена.

iconv

iconv support enabled

iconv implementation libiconv

iconv library version 1.9

Directive Local Value Master Value

iconv.input_encoding ISO-8859-1 ISO-8859-1

iconv.internal_encoding ISO-8859-1 ISO-8859-1

iconv.output_encoding ISO-8859-1 ISO-8859-1

Операционная система Unix, какая именно не знаю, скорее всего FreeBSD.

В принципе если сменить во всех файлах скрипта ISO-8859-1, UTF-8, и UTF-16 на CP1251, то вся информация извлекаемая из id3 тэгов отображается нормально а вот названия самих файлов криво "Áàñòà - Ìàìà.mp3"

http://www.tvhotu.ru/id3.jpg

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Сменил Windows-1251 на CP1251, результат тот же.

Судя по информации с phpinfo библиотека iconv установлена.

iconv

iconv support enabled

iconv implementation libiconv

iconv library version 1.9

Directive Local Value Master Value

iconv.input_encoding ISO-8859-1 ISO-8859-1

iconv.internal_encoding ISO-8859-1 ISO-8859-1

iconv.output_encoding ISO-8859-1 ISO-8859-1

Операционная система Unix, какая именно не знаю, скорее всего FreeBSD.

В принципе если сменить во всех файлах скрипта ISO-8859-1, UTF-8, и UTF-16 на CP1251, то вся информация извлекаемая из id3 тэгов отображается нормально а вот названия самих файлов криво "Áàñòà - Ìàìà.mp3"

http://www.tvhotu.ru/id3.jpg

Я попробовал, как ты сказал “сменить во всех файлах скрипта ISO-8859-1, UTF-8, и UTF-16 на CP1251” у меня скрипт перестал работать. Может ты поделишься своим переделанным? Или может есть другой способ? Заранее большое спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...