Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Meta-dane plików graficznych
Forum PHP.pl > Forum > PHP
Vengeance
Witam.

Każdy plik mp3 ma coś takiego jak meta-dane. Trzymane są tam dane o tytule utworu, wykonawcy, gatunku muzycznym do którego należy itd.

Pliki graficzne o ile mi wiadomo, także mają takie coś :]

Czy ktoś kiedyś testował, jak odczytać te dane z poziomu php.
Albo jeszcze lepiej, jak takie dane edytować :]

Czy są do tego jakieś gotowe klasy?


Zaczne pisać chyba galerie zdjęć. Chce to zrobić na TXT (== większa popularność skryptu). Myślałem więc, aby wszystkie dane o obrazku zapisywać w odpowiednie meta-tagi, a następnie odczytywać je z pod php.

Pozdrawiam

----edit----
Właśnie dojrzałem, że takie "właściwości" mają tylko pliki JPG :/
Chyba trzeba będzie jednak zapisywać te wszystkie informacje
w bazie sad.gif
hwao
  1. <?php
  2.  
  3.  /**
  4.   * Biblioteka to Anihilusa pozwalajaca wydobywac informacje
  5.   * z plików mp3 (mozliwosc zapisu ich jak i odczytu) odnosnie
  6.   * wykonawcow tytulu etc.
  7.   * @author hwao
  8.   */
  9.  
  10.  class Anihilus_Mp3
  11.  {
  12. var $path;
  13.  
  14. var $tag;
  15. var $title;
  16. var $artist;
  17. var $album;
  18. var $year;
  19. var $comm;
  20.  
  21. function Anihilus_Mp3( $path = NULL )
  22. {
  23. if( file_exists( $path ) )
  24. {
  25.  $this->path = $path;
  26.  // Uruchomienie pobrania info :-)
  27.  $this->getInfo();
  28. }
  29. else
  30. {
  31. trigger_error( 'Error path:' . $path );
  32. }
  33. }
  34.  
  35. function getInfo()
  36. {
  37. $file = fopen( $this->path, 'rb' );
  38.  
  39. fseek( $file, -128, SEEK_END );
  40.  $this->tag = fgets( $file,);
  41.  
  42.  
  43.  
  44.  if( $this->tag == 'TAG' )
  45.  {
  46.  /**
  47. * Get Info
  48. * Type: ID3v1 Tag
  49. */
  50. $this->title = trim( fgets( $file, 31 ) );
  51. $this->artist = trim( fgets( $file, 31 ) );
  52.  $this->album = trim( fgets( $file, 31 ) );
  53.  $this->year  = trim( fgets( $file,) );
  54.  $this->comm  = trim( fgets( $file, 29 ) );
  55. $this->tag = 'ID3v1';
  56.  
  57.  fclose( $file );
  58.  return TRUE;
  59.  }
  60.  else
  61.  {
  62.  fclose( $file );
  63.  
  64.  /* Nie znane */
  65.  $this->title = 'unknow';
  66. $this->artist = 'unknow';
  67.  $this->album = 'unknow';
  68.  $this->year  = 'unknow';
  69.  $this->comm  = 'unknow';
  70.  
  71.  
  72.  return FALSE;
  73.  }
  74. }
  75.  }
  76.  /*
  77.    $mp3 = new Anihilus_Mp3( 'Korn - Did my Time.mp3' );
  78.    $mp3->getInfo();
  79.    
  80.    echo '<b>File</b> : ' . $mp3->path. '<br />';
  81.    echo 'Tag :  ' . $mp3->tag . '<br />';
  82.    echo 'Title :  ' . $mp3->title . '<br />';
  83.    echo 'Artist : ' . $mp3->artist . '<br />';
  84.    echo 'Album :  ' . $mp3->album . '<br />';
  85.    echo 'Year : ' . $mp3->year . '<br />';
  86.    echo 'Comment : ' . $mp3->comm . '<br />';
  87.    */  
  88.  
  89.  
  90. ?>


Chyba wszytko jasne :-)

Cod jpg to postepuje sie dokladnie idelanie tak samo one sa zazwyczaj zapisane na poczatku alob koncu. Znajdz sobie opis jakis w googlach i apre min roobty i jest :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.