[email protected] Opublikowano 25 Października 2022 Udostępnij Opublikowano 25 Października 2022 Witam potrzebuję gotowego prostego skryptu ma wyświetlać ilość słuchaczy w formie tesktowej bez tła bez niczego tak jak tekst na stronie nic więcej może ktoś pomóc ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kosti Opublikowano 27 Października 2022 Udostępnij Opublikowano 27 Października 2022 Chodzi zapewne o skrypt statystyk w php.| Jest tutaj: Jeśli chcesz, aby wyświetlał tylko liczbę słuchaczy, powinien wyglądać tak: <?php /** * SHOUTcast 2 statistics class * * @author PortalRadiowy.pl * @copyright 2016 PortalRadiowy.pl * @version 1.3 */ class shoutcast2stats { private $_ip; private $_port; private $_sid; private $_json; public function __construct($ip, $port, $sid=1) { $this->_ip = $ip; $this->_port = $port; $this->_sid = $sid; $this->initCurl(); } private function initCurl() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://'.$this->_ip.':'.$this->_port.'/stats?sid='.$this->_sid.'&json=1'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (PortalRadiowy.pl)'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 3); $curl_exec = curl_exec($ch); $this->_json = ($curl_exec ? json_decode(iconv('UTF-8', 'UTF-8//IGNORE', $curl_exec)) : false); curl_close($ch); } public function get($name, $name_dj='') { if ($name == 'streamstatus') { if ($this->_json == false) { return 0; } elseif ($this->_json->streamstatus == 0) { return 1; } else { return 2; } } elseif (isset($this->_json->$name) && $name == 'dj' && !empty($name_dj)) { $dj_json = json_decode(substr(preg_replace('/\},[\s]*\{/', ',', preg_replace(array('/\([\s]*"/', '/"[\s]*\)/', '/"[\s]*,/'), array('{"', '"}', '":'), preg_replace_callback('/\\\\(\d+)/m', function($matches) { return iconv('Windows-1250', 'UTF-8//IGNORE', chr($matches[1])); }, $this->_json->dj))), 1, -1)); if (isset($dj_json->$name_dj)) { return htmlspecialchars($dj_json->$name_dj); } } elseif (isset($this->_json->$name)) { return htmlspecialchars($this->_json->$name); } return ''; } } /** * Inicjalizacja klasy: * ip-serwera - Zamień na adres IP swojego serwera SHOUTcast 2 * 8000 - Zamień na port swojego serwera SHOUTcast 2 * * Opcjonalnie: * Po argumencie z numerem portu, możesz wstawić argument z numerem streamu (kanału) sid, domyślnie: 1 * $stats = new shoutcast2stats('ip-serwera', 8000, 2); // Dla stream id: 2 */ $stats = new shoutcast2stats('ip-serwera', 8000); ?> <div>Ilość słuchaczy: <?php echo $stats->get('currentlisteners');?></div> <div>Ilość unikalnych słuchaczy: <?php echo $stats->get('uniquelisteners'); ?></div> Edytuj: $stats = new shoutcast2stats('ip-serwera', 8000); Wstaw tam dane swojego serwera np s1.slotex.pl i 9999 PS. Skrypt może nie działać poprawnie na niektórych darmowych hostingach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
[email protected] Opublikowano 27 Października 2022 Autor Udostępnij Opublikowano 27 Października 2022 Godzinę temu, kosti napisał: Chodzi zapewne o skrypt statystyk w php.| Jest tutaj: Jeśli chcesz, aby wyświetlał tylko liczbę słuchaczy, powinien wyglądać tak: <?php /** * SHOUTcast 2 statistics class * * @author PortalRadiowy.pl * @copyright 2016 PortalRadiowy.pl * @version 1.3 */ class shoutcast2stats { private $_ip; private $_port; private $_sid; private $_json; public function __construct($ip, $port, $sid=1) { $this->_ip = $ip; $this->_port = $port; $this->_sid = $sid; $this->initCurl(); } private function initCurl() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://'.$this->_ip.':'.$this->_port.'/stats?sid='.$this->_sid.'&json=1'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (PortalRadiowy.pl)'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 3); $curl_exec = curl_exec($ch); $this->_json = ($curl_exec ? json_decode(iconv('UTF-8', 'UTF-8//IGNORE', $curl_exec)) : false); curl_close($ch); } public function get($name, $name_dj='') { if ($name == 'streamstatus') { if ($this->_json == false) { return 0; } elseif ($this->_json->streamstatus == 0) { return 1; } else { return 2; } } elseif (isset($this->_json->$name) && $name == 'dj' && !empty($name_dj)) { $dj_json = json_decode(substr(preg_replace('/\},[\s]*\{/', ',', preg_replace(array('/\([\s]*"/', '/"[\s]*\)/', '/"[\s]*,/'), array('{"', '"}', '":'), preg_replace_callback('/\\\\(\d+)/m', function($matches) { return iconv('Windows-1250', 'UTF-8//IGNORE', chr($matches[1])); }, $this->_json->dj))), 1, -1)); if (isset($dj_json->$name_dj)) { return htmlspecialchars($dj_json->$name_dj); } } elseif (isset($this->_json->$name)) { return htmlspecialchars($this->_json->$name); } return ''; } } /** * Inicjalizacja klasy: * ip-serwera - Zamień na adres IP swojego serwera SHOUTcast 2 * 8000 - Zamień na port swojego serwera SHOUTcast 2 * * Opcjonalnie: * Po argumencie z numerem portu, możesz wstawić argument z numerem streamu (kanału) sid, domyślnie: 1 * $stats = new shoutcast2stats('ip-serwera', 8000, 2); // Dla stream id: 2 */ $stats = new shoutcast2stats('ip-serwera', 8000); ?> <div>Ilość słuchaczy: <?php echo $stats->get('currentlisteners');?></div> <div>Ilość unikalnych słuchaczy: <?php echo $stats->get('uniquelisteners'); ?></div> Edytuj: $stats = new shoutcast2stats('ip-serwera', 8000); Wstaw tam dane swojego serwera np s1.slotex.pl i 9999 PS. Skrypt może nie działać poprawnie na niektórych darmowych hostingach. wszystko ładnie pięknie ,tylko pusta strona, jakich modułów do apache może mi brakować ? dokładnie to chodzi o coś takiego : Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kosti Opublikowano 28 Października 2022 Udostępnij Opublikowano 28 Października 2022 Podaj link do strony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
[email protected] Opublikowano 28 Października 2022 Autor Udostępnij Opublikowano 28 Października 2022 3 godziny temu, kosti napisał: Podaj link do strony. https://radiodd.eu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kosti Opublikowano 28 Października 2022 Udostępnij Opublikowano 28 Października 2022 W Twoim przypadku najlepiej wykorzystać API AzuraCast, którego używasz. Napisałem coś takiego dla Twojego kanału głównego. <?php $api_azura='https://radiodd.cloud/api/nowplaying/1'; $json = file_get_contents($api_azura); $obj = json_decode($json, true); $slucha = $obj["listeners"]["unique"]; ?> <!doctype html> <html lang="pl"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="refresh" content="30"> <title>Liczba słuchaczy</title> </head> <body> Słucha: <?php echo $slucha ?> </body> </html> Dla pozostałych musisz podmienić domenę na początku tutaj, bo widziałem, że są na innych. $api_azura='https://radiodd.cloud/api/nowplaying/1'; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
[email protected] Opublikowano 29 Października 2022 Autor Udostępnij Opublikowano 29 Października 2022 dziękuję , temat można zamknąć pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi