Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » PHP » php, xml, biraz da sohoutcast server


Yanıt
 
LinkBack Seçenekler
Old 09.06.2003   #1 (permalink)
 
ilhami nisvan's Avatar
 
Üyelik Tarihi: 24.01.2003
Yer: istanbul
Yaş: 32
Mesaj: 15
php, xml, biraz da shoutcast server


yav, nsm'nin yeni versiyonunda nev-i şahsına münhasır Radyo'da çalan şarkıları shoutcast server'ının ürettiği XML'den çeken bir script kullandım. nsm'yi geliştirdiğim bilgisayara PHP'nin 4.3.x'li bir versiyonu kurulu. Servere attığımda demin bahsettiğim script yüzünden site açılamıyor. server'da PHP 4.0 ya da 4.1 kurulu. Phpinfosundan baktım XML parser'i da kurulu.
Diyorum ki, bu kullandığım scriptte serverda versiyonda çalışmayan fonksiyonlar mı vardır acep.

XML'i şeeden PHP şudur:

<?
///////////////////////////////////////////////////////////////////////////////////////////////
// Just a little bit about this script.
// Part 1 Written by: T. Stanley
// Part 2 add-ons Written by: ST. JOHN
// Connection stuff from Jay Krivanek's and Oddsock's SHOUTout script.
// First feel free to edit it to suit your needs.
// This script does all that T. Peppers does (however it is probably a bit slower
// but it works w/o the XML stuff just pure PHP) and also retrieves the bitrate
// (if stream is up) and whether there is a source (DSP connected with DNAS).
// It relies heavily on the assumption that 7.HTML, index.HTML and XML page will not change.
// Currently works with DNAS 1.8.0 (haven't tested older versions).
// If you upgrade the DNAS and it breaks it is due to the fact that Nullsoft has changed
// the data on 7.HTML, index.HTML and XML page and the ereg_replace and explode will need
// to be tweaked.
// Right now it is setup to print out every variable it gets.
// Song data (titles and playedats)is recursive so it can get up to 20 (if set in DNAS) as
// well a unlimited listener info (IP, etc.)
// It is suggested that any variables you don't need you comment out or delete the extraction
// of the data.
// Arrays (song, playedats, etc.) start with 0. (i.e. song[0] = currently playing song)
// Thanks to Ari for the explanation of 7.HTML on the SHOUTcast listserv (I was lurking)
// Run the srcipt as is (after changing host, port, password) for a list of variables printed
// out (listnener data and song history will not show up unless there is data for them).
// Contacts:
// tom@shoutclub.com
// dstjohn@mediacast1.com
// Notes:
// Very Important >> Uncomment(take away the forward slashes //)
// all the echo statements to get a full list of all the variables,
// if you dont know what im talking about, then stop right here and go learn PHP
// http://www.php.net
// http://www.thickbook.com << very resourcefull for beginners
///////////////////////////////////////////////////////////////////////////////////////////////
include ("config.PHP");
$listenlink = 'http://'.$host.':'.$port.'/listen.pls'; //make link to stream
$fp = fsockopen("$host", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection
}
if($success!=2){ //if connection
fputs($fp,"GET /7.HTML HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); //get 7.HTML
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
fclose($fp); //close connection
$page = ereg_replace(".*<body>", "", $page); //extract data
$page = ereg_replace("</body>.*", ",", $page); //extract data
$numbers = explode(",",$page); //extract data
$currentlisteners=$numbers[0]; //set variable
$connected=$numbers[1]; //set variable

if($connected==1) //if DSP is connected
$wordconnected="yes"; //set variable
else //if no DSP connection
$wordconnected="no"; //set variable
$peaklisteners=$numbers[2]; //set variable
$maxlisteners=$numbers[3]; //set variable
$reportedlisteners=$numbers[4]; //set variable

##Stuff printing out to screen may want to shut off.##
// echo('$listenlink = '.$listenlink.'<BR>');
// echo('$reportedlisteners = '.$reportedlisteners.'<BR>');
// echo('$maxlisteners = '.$maxlisteners.'<BR>');
// echo('$peaklisteners = '.$peaklisteners.'<BR>');
// echo('$connected = '.$connected.' <BR>');
// echo('$wordconnection = '.$wordconnected.'<BR>');
// echo('$currentlisteners = '.$currentlisteners.'<BR>');
##Okay stop commenting stuff out now.##
}

if($connected==1){ //only do if DSP is connected
$fp = fsockopen("$host", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) { //if no connection
$success1=2; //dummy variable to see if successful connect
}
if($success1!=2){ //only do if connected
fputs($fp,"GET /index.HTML HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); //get index.HTML
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
$pageed = ereg_replace(".*Stream is up at ", "", $page); //extract data
$bitrate = ereg_replace(" kbps.*", "", $pageed); //extract data
fclose($fp); //close connection

##Print out bitrate.##
//echo('$bitrate = '.$bitrate.' <BR>');
##You know the drill stop here.##

}
}

$fp = fsockopen("$host", $port, &$errno, &$errstr, 30); //open connection yet again
if(!$fp) { //if connection
$success2=2;
}
if($success2!=2){ //if connected
fputs($fp,"GET /admin.cgi?pass=$password&mode=viewxml HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); //get XML page
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}

$loop = array("AVERAGETIME", "SERVERGENRE", "SERVERURL", "SERVERTITLE", "SONGTITLE", "SONGURL", "IRC", "ICQ", "AIM", "WEBHITS", "STREAMHITS", "INDEX", "LISTEN", "PALM7",
"LOGIN", "LOGINFAIL", "PLAYED", "COOKIE", "ADMIN", "UPDINFO", "KICKSRC", "KICKDST", "UNBANDST", "BANDST", "VIEWBAN", "UNRIPDST", "VIEWRIP", "VIEWXML",
"VIEWLOG", "INVALID"); //define all the variables to get (delte any ones you don't want)
$y=0; //dummy variable for while loop
while($loop[$y]!=''){ //while there are things in loop
$pageed = ereg_replace(".*<$loop[$y]>", "", $page); // extract data
$phpname = strtolower($loop[$y]); //make names in loop lowercase for variable names
$$phpname = ereg_replace("</$loop[$y]>.*", "", $pageed); //finish extracting data
if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE) //if for code clean-up (if you have problems with variables with URL encoding (i.e. %20 for space put them in this loop)
$$phpname = urldecode($$phpname); // replace URL code with regular text (i.e. %20 = space)

##More stuff that prints##
//echo ('$'.$phpname.' = '.$$phpname.' <BR>');
##Stop here. Your server will be upset if you comment out the next line of code ($y++;).##

$y++; //update dummy variable for while loop
}
$pageed = ereg_replace(".*<SONGHISTORY>", "", $page); //extract data
$pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed); //extract data
$songatime = explode("<SONG>", $pageed); //break data down for each song
$r=1; //dummy variable
while($songatime[$r]!=""){ //while loop for each song
$t=$r-1; //correction for first value in array from explode is worthless
$playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]); // extract data
$playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]); //extract data
$song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]); //extract data
$song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]); //extract data
$song[$t] = urldecode($song[$t]); //cleans-up the URL code thing again

##Yet even more crap that gets printed out.##
//echo ('$song['.$t.'] = '.$song[$t].' <BR>$playedat['.$t.'] = '.$playedat[$t].' <BR>');
##Same as last time. Unhappy servers tend to hurt people.##

$r++; //update loop variable
}
$pageed = ereg_replace(".*<LISTENERS>", "", $page); //extract data
$pageed = ereg_replace("</LISTENERS>.*", "", $pageed); //extract data
$listeninfo = explode("<LISTENER>", $pageed); //break apart data
$r=1; //dummy loop variable
while($listeninfo[$r]!=""){ //while loop for extraction
$t=$r-1; //correction for first value in array from explode is worthless
$hostname[$t] = ereg_replace(".*<HOSTNAME>", "", $listeninfo[$r]); //extract data
$hostname[$t] = ereg_replace("</HOSTNAME>.*", "", $hostname[$t]); //extract data
$useragent[$t] = ereg_replace(".*<USERAGENT>", "", $listeninfo[$r]); //extract data
$useragent[$t] = ereg_replace("</USERAGENT>.*", "", $useragent[$t]); //extract data
$underruns[$t] = ereg_replace(".*<UNDERRUNS>", "", $listeninfo[$r]); //extract data
$underruns[$t] = ereg_replace("</UNDERRUNS>.*", "", $underruns[$t]); //extract data
$connecttime[$t] = ereg_replace(".*<CONNECTTIME>", "", $listeninfo[$r]); //extract data
$connecttime[$t] = ereg_replace("</CONNECTTIME>.*", "", $connecttime[$t]); //extract data

##Yet even more crap that gets printed out.##
// echo ('$hostname['.$t.'] = '.$hostname[$t].' <BR>$useragent['.$t.'] = '.$useragent[$t].' <BR>$underruns['.$t.'] = '.$underruns[$t].' <BR>$connecttime['.$t.'] = '.$connecttime[$t].'<BR>');
##STOP. Just think that was the last set of echos you have to comment out.##

$r++; //update loop variable
}
fclose($fp); //close connection
}
$password=changeme //Leave this. It writes over real value so if someone were to use
//include to get this page they cannot use echo $password to get your
//password. There is probably a better way to do this but I can't code.
?>


Eğer versiyonla ilgili bir sorunsa, kodu ne şekilde değiştirirsem eski PHPlerde de çalışır. Çünkü serverdaki PHP'yi update ettiremiyorum. Bir yardım...
__________________
ilhami nisvan {şahs-ül zuhûrat}

Mesaj ilhami nisvan tarafından 10.06.2003 (00:15) yeniden düzenlendi.
ilhami nisvan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 10.06.2003   #2 (permalink)
 
stNonStop's Avatar
 
Üyelik Tarihi: 16.02.2002
Yer: İstanbul
Yaş: 29
Mesaj: 1,809
Görsel: 5
görünüşte PHP 4 ile uyumsuz bir kod yok ama verdiği hatayıda yazsaydın belki daha çok yardımcı olabilirdik.
__________________
St. Nonstop

Elektronik ve Haberleşme Mühendisi
Aziz DURMAZ
stNonStop şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 10.06.2003   #3 (permalink)
 
ilhami nisvan's Avatar
 
Üyelik Tarihi: 24.01.2003
Yer: istanbul
Yaş: 32
Mesaj: 15
hatayı da keşke verebilsem

hata vermiyor ki, bu scripti sayfalarıma include ettiğimde, sayfam bir türlü generate edilemiyor. 30 sn. sonra da timeout veriyor. Ne zaman ki include'ı kaldırıyorum. Sayfalar çalışıyor.
__________________
ilhami nisvan {şahs-ül zuhûrat}
ilhami nisvan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 12.06.2003   #4 (permalink)
 
Üyelik Tarihi: 20.03.2003
Yer: istanbul
Mesaj: 94
4.0 veya 4.1 baya eski kalıo şu anda aslında
kurmamalarında ısrar etmeleri büyük ihtimal kullandıkları hazır kontrol panel sisteminde uyumsuzluk çıkmasın diedir...

başka ücretsiz bi yerde dene bence
biturbo şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

server , sohoutcast , xml , php


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online oyun photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.4 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 12:35.