웹마스터 팁

제목_없음.jpg
http://csdj4u.com/listen.plshttp://csdj4u.com/listen.php머 윈엠프 리스트창에 방송정보 나오게 하는걸 가끔 물어보시는분들이 계시는데
그래서 한번 만들어 봤습니다. 예전에 엔지오에 올라온 소스이죠
아 그리고 필요 없는 명령문들이 들어 가 있습니다만..
필요 없는게 아님니다. 나중에 방송정보 출력시 바로 쓸수도 있고 해서
이렇게 같이 넣어 놨습니다만.. 그렇타고 에러나 오류 나는거 전혀 없습니다.

자그럼 대충 한번 설명해 보겠습니다.
설명이 허접하더라도 이해를 하시길;;

먼저 아래의 소스를 복사하신 다음
status.inc.php3 <----이렇게 php파일을 하나 생성해 줌니다.


// 여기서 부터 
 
<?php
/*
GetSCStatus ver 0.2 for SC 1.7
Coded by ZeFyr@ZeZZ
2000/09/17
팀제쯔로 유명한 서풍님의 원초 소스를 수정
*/

function GetSCStatus($host,$port) {
        $fp = fsockopen($host, $port, &$errno, &$errstr, 5);
        if($fp) {
                fputs($fp,"GET /index.html HTTP/1.0n");
                fputs($fp,"User-Agent: Mozilla/4.0n");
                fputs($fp,"n");
                while(!feof($fp)) {
                        $contents .= fgets($fp,128);
                }
                fclose($fp);

                if(eregi("Server is currently down",$contents)) $onair = 0;
                else $onair = 1;
                
                if($onair) {        
                        $contents = substr($contents,strpos($contents,"Stream is up at")+16);
// 를 앞부분에 붙이신 것들은 사용하지 않습니다.
// 한줄이 띄어서 쓰인 부분이 각값들을 찾는 부분입니다.
// 쓰지 않는 값들은 주석으로 막으시기 바랍니다.                        
                        $rtn["format"] = ereg_replace("^([0-9]+) kbps(.+)$","1",$contents);
                        
                        $contents = substr($contents,strpos($contents,"with <B>")+8);
                        $listeners = substr($contents,0,strpos($contents,"unique"));
                        $listeners = ereg_replace("([[:space:]])+",":",trim(ereg_replace("[^[:digit:]]"," ",$listeners)));
                        $listeners = split(":",$listeners);
                        
                        $rtn["listeners"] = $listeners[0];
                        $rtn["listenersmax"] = $listeners[1];
                        $rtn["uniquelisteners"] = $listeners[2];
                        $lpeak = substr($contents,strpos($contents,"Listener Peak:")+54);
                        $rtn["listenerpeak"] = substr($lpeak,0,strpos($lpeak,"</b>"));
                        
                        $alt = substr($contents,strpos($contents,  "Average Listen Time:")+60);
                        $alt = substr($alt,0,strpos($alt,"</b>"));
                        $rtn["avglistentime"] = $alt;
                        
                        $title = substr($contents,strpos($contents,"Stream Title:")+53);
                        $rtn["title"] = substr($title,0,strpos($title,"</b>"));
                
                        $genre = substr($contents,strpos($contents,"Stream Genre:")+53);
                        $rtn["genre"] = substr($genre,0,strpos($genre,"</b>"));

// 예를 들어 다음의 세줄을 // 로 막으시면 URL이 값에 포함되지 않습니다.
// URL을 쓰지 않으시는 분께는 그만큼의 속도가 절약됩니다.
                        $url = substr($contents,strpos($contents,"Stream URL:")+51);
                        $url = substr($url,0,strpos($url,"</b>"));
                        $rtn["url"] = ereg_replace("<a href="(.+)">(.+)</a>","1",$url);        
        
                        if(ereg("Stream ICQ:",$contents)) {
                                $icq = substr($contents,strpos($contents,"Stream ICQ:")+51);
                                $icq = substr($icq,0,strpos($icq,"</b>"));
                                $rtn["icq"] = ereg_replace("<a href="http://wwp.icq.com/scripts/contact.dll?msgto=(.*)">(.+)","1",$icq);
                        }                

                        $aim = substr($contents,strpos($contents,"Stream AIM:")+51);
                        $aim = substr($aim,0,strpos($aim,"</b>"));
                        $rtn["aim"] = urldecode(ereg_replace("<a href="aim:goim?screenname=(.*)">(.+)","1",$aim));
                        
                        $irc = substr($contents,strpos($contents,"Stream IRC:")+51);
                        $irc = substr($irc,0,strpos($irc,"</b>"));
                        $rtn["irc"] = ereg_replace("<a href="http://www.shoutcast.com/chat.phtml?dc=(.*)">(.+)","1",$irc);
                        $rtn["irc"] = urldecode(urldecode($rtn["irc"]));
                        
                        $song = substr($contents,strpos($contents,"Current Song:")+53);
                        $rtn["song"] = substr($song,0,strpos($song,"</b>"));
                        
                        $rtn["status"] = 1;
                }
                else {
                        $rtn["status"] = 0;
                }
        }
        else {
                $rtn["status"] = -1;
        }
        return $rtn;
}
?>

// 여기까지 복사 하셔서 status.inc.php3 이렇게 하나 만들어 주세요

그리고 아래소스 역시 복사 해서

listen.php 이렇게 php파일을 생성해 줌니다.

//여기서 부터
<? include ('status.inc.php3'); ?>

<?
$status = GetSCStatus('$host','$port'); if ($status[status] == 1){echo '';} else {echo '지금은 방송중이지 않습니다. 방송스케줄을 확인해주세요.';}
$str = "[playlist]n
numberofentries=4n
File1=http://$host:$portn
Title1=습관되면 좋은방송 - CsDJ4u.Com[SERVER #1]n
Length1=-1n
File2=http://$host:$portn
Title2=방송진행 : $status[aim]n
Length2=-1n
File3=http://$host:$portn
Title3=방송타이틀 : $status[title]n
Length3=-1n
File4=http://$host:$portn
Title4=접속시청취자 : $status[listeners]명n
Length4=-1n
Version=2n";
$fp = fopen("listen.pls", "w");
fputs($fp, $str, strlen($str));
fclose($fp);
?>
// 여기까지 복사해서 listen.php 이렇게 하나 만들어 주시면 됨니다.
listen.php 이 소스를 만들지 전에 수정해야 할것들이 있습니다
$host:$port <~이렇게 된것들이 여러개 있습니다.
이것을 방송주소로 바꿔 주신후에 저장하세요

저희 방송주소를 예로 들겠습니다
$host:$port <===이부분을  
cj4u.com:800 <====요렇게 바꿔주시면 됨니다.
그럼 2개의 파일이 생성되었습니다.
계정에 업로드 하세요

그리고 http://홈피주소/listen.php 이렇게 실행해 주세요
그럼 listen.pls 파일이 생성 되는것을 알수 있습니다.
그다음 확인을 해봐야 겠죠 ?
http://홈피주소/listen.pls 이렇게 해서 방송을 들어 봄니다.
아마 잘따라 하신분들은 잘되실꺼라 믿습니다.

디렉토리의 권한을 변경해서 쓰세요... 파일을 쓸 수 있도록...
...cron인가 뭔가를 써서 일정한 시간마다 자동으로 만들 수도 있다고 하던데
자체서버가 없는 이상 좀 힘들겠죠...

머 미리 보기를 보자면;;
http://csdj4u.com/listen.php
http://csdj4u.com/listen.pls
제가 사용하고 있는걸 보면 되겠죠 ?

머 나머지는 알아서 응용하세요.
아여기서 잠깐 위의 두소스는 같은 위치에 올리셔야 합니다.

추가적은 설명 필요 없을꺼라 봄니다.
나머지는 알아서 응용해서 쓰세요 ;;; 그럼 이만 ....

혹시 질문이 있으시다면 제홈피를 통해서 해주세요

홈피 : http://csdj4u.com




제목 글쓴이 날짜
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] U2em 2004.05.31
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] 김동욱 2004.05.30
초간단 설문조사 소스 [3] 이혁 2004.05.27
PHP로 구현하는 음악 감상실 [9] file 컴도미 2004.05.21
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] 9000㎒ 2004.05.18
팁 아닌 팁 한달전... http://zentoo.com 2004.05.15
포털사이트 처럼 시스템 점검중 만들기 [3] http://zentoo.com 2004.05.14
PHP 4에서 PHP 5로 이행 [5] 이종현 2004.04.30
PHP5 RC2 Released. [4] 써니루루☆ 2004.04.27
트랙백 구현하기 - 2. 트랙백의 형식 file TheMics 2004.04.22
트랙백 구현하기 - 2. 트랙백의 형식 file TheMics 2004.04.22
엔지오 채널 따라하기 -_-& www자동 붙이기 [6] 박종찬 2004.04.18
트랙백 구현하기 - 1. 트랙백이란 무엇인가? [4] file TheMics 2004.04.18
[국에 밥말아먹는 PHP 프로그래밍] 1-1. PHP는 뭐하는 밥이냐?! (상) (Build 2) [17] 9000㎒ 2004.04.18
배열의 정렬에 대한 약간의 강의 [2] ♡다솜지기♡ 2004.04.02
드디어 PHP 5 RC1 발표(04.03.18) [8] 써니루루☆ 2004.03.19
PHP와 MYSQL연동 관련함수 [3] 백무혼 2004.03.07
함수] Exec 함수에 대한 간략한 설명 [3] NS 2004.03.05
초간단 인라이브 방송여부 알아보기 프로그램. [12] 심심타 2004.03.01
[허접팁]윈엠프 리스트창에 방송정보 보여주기;;[수정] [5] file 『처니리♂』 2004.02.29