Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rozpoznanie typu pliku z adresu url
Forum PHP.pl > Forum > Przedszkole
arturpiotrowski
mam url streamu radiowego:
Kod
http://91.232.4.33:9011/stream

w jaki sposób przy pomocy php sprawdzić jaki to typ strumienia (AAC+, MP3 itp) i z jakim bitrate jest ewentualnie ten stream, aby to później zapisać w bazie?
Pyton_000
pobierz heaery. http://php.net/manual/en/function.get-headers.php

Kod
content-type:audio/mpeg
icy-br:128
icy-genre:RM80
icy-name:RM80
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com">Winamp</a><BR>
icy-notice2:SHOUTcast DNAS/posix(linux x64) v2.4.2.167<BR>
icy-pub:0
icy-url:http://RM80.pl
arturpiotrowski
ooo dzięki smile.gif

okazuje się jednak że niektóre adresy mają w tablicy klucz 'content-type' inne 'Content-type' albo jeszcze inny zapis, jak zatem wyciągnąć dane z tego klucza żeby pokazało się zawsze z niego dane bez względu na to jaka jest wielkość znaków?
  1. $url1 = 'http://91.232.4.33:9011/stream';
  2. $url2 = 'http://listen.1brightonfm.co.uk:10000/obfm';
  3. $headers1 = get_headers($url1, 1);
  4. $headers2 = get_headers($url2, 1);
  5. $content_type1 = $headers1['content-type'];
  6. $content_type2 = $headers2['content-type'];
  7. echo $content_type1; // audio/mpeg
  8. echo $content_type2; // pusto a powinno zwrócić audio/aacp
nospor
Sprowadzas kazdy index do malych liter i juz...

  1. function getValueForIndex($index, $headers)
  2. {
  3. foreach ($headers as $k => $v) {
  4. if (strtolower($k) === $index) {
  5. return $v;
  6. }
  7. }
  8.  
  9. return null;
  10. }


  1. echo getValueForIndex('content-type', $headers1);
arturpiotrowski
Dzięki o to chodziło, mała modyfikacja
  1. $url1 = 'http://91.232.4.33:9011/stream';
  2. $url2 = 'http://listen.1brightonfm.co.uk:10000/obfm';
  3. $headers = get_headers($url2, 1);
  4. $arr = array('audio/mpeg'=>'MP3','audio/aacp'=>'AAC+');
  5. function getValueForIndex($index, $headers, $types_array)
  6. {
  7. foreach ($headers as $k => $v) {
  8. if (strtolower($k) === $index) {
  9. if(array_key_exists($v,$types_array)) {
  10. return $types_array[$v];
  11. }
  12. return $v;
  13. }
  14. }
  15. return null;
  16. }
  17.  
  18. echo getValueForIndex('content-type', $headers,$arr);
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.