Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Rozpoznanie typu pliku z adresu url
arturpiotrowski
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
arturpiotrowski
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arturpiotrowski
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:23