Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML/php]
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
W jaki sposób coś takiego:
  1.  <?xml version="1.0" standalone="yes" ?>
  2.  <!DOCTYPE SHOUTCASTSERVER (View Source for full doctype...)>
  3. - <SHOUTCASTSERVER>
  4.  <CURRENTLISTENERS>0</CURRENTLISTENERS>
  5.  <PEAKLISTENERS>33</PEAKLISTENERS>
  6.  <MAXLISTENERS>50</MAXLISTENERS>
  7.  <REPORTEDLISTENERS>0</REPORTEDLISTENERS>
  8.  <AVERAGETIME>181</AVERAGETIME>
  9.  <SERVERGENRE>auto pilot</SERVERGENRE>
  10.  <SERVERURL>http://www.poprosturadio.com</SERVERURL>
  11.  <SERVERTITLE>po prostu dream</SERVERTITLE>
  12.  <SONGTITLE>09 - Bob Dylan - Like a Rolling Stone</SONGTITLE>
  13.  <SONGURL>http://www.poprosturadio.com</SONGURL>
  14.  <IRC>Auto</IRC>
  15.  <ICQ>Auto</ICQ>
  16.  <AIM>Auto</AIM>
  17.  <WEBHITS>124291</WEBHITS>
  18.  <STREAMHITS>7123</STREAMHITS>
  19.  <STREAMSTATUS>1</STREAMSTATUS>
  20.  <BITRATE>48</BITRATE>
  21.  <CONTENT>audio/mpeg</CONTENT>
  22.  <VERSION>1.9.7</VERSION>
  23. - <WEBDATA>
  24.  <INDEX>107826</INDEX>
  25.  <LISTEN>1551</LISTEN>
  26.  <PALM7>4080</PALM7>
  27.  <LOGIN>0</LOGIN>
  28.  <LOGINFAIL>276</LOGINFAIL>
  29.  <PLAYED>30</PLAYED>
  30.  <COOKIE>1</COOKIE>
  31.  <ADMIN>2481</ADMIN>
  32.  <UPDINFO>7699</UPDINFO>
  33.  <KICKSRC>134</KICKSRC>
  34.  <KICKDST>0</KICKDST>
  35.  <UNBANDST>0</UNBANDST>
  36.  <BANDST>0</BANDST>
  37.  <VIEWBAN>3</VIEWBAN>
  38.  <UNRIPDST>0</UNRIPDST>
  39.  <RIPDST>0</RIPDST>
  40.  <VIEWRIP>1</VIEWRIP>
  41.  <VIEWXML>17</VIEWXML>
  42.  <VIEWLOG>13</VIEWLOG>
  43.  <INVALID>163</INVALID>
  44.  </WEBDATA>
  45.  <LISTENERS />
  46. - <SONGHISTORY>
  47. - <SONG>
  48.  <PLAYEDAT>1159002388</PLAYEDAT>
  49.  <TITLE>09 - Bob Dylan - Like a Rolling Stone</TITLE>
  50.  </SONG>
  51. - <SONG>
  52.  <PLAYEDAT>1159002130</PLAYEDAT>
  53.  <TITLE>05 - Peter Cetera - Glory Of Love</TITLE>
  54.  </SONG>
  55. - <SONG>
  56.  <PLAYEDAT>1159001846</PLAYEDAT>
  57.  <TITLE>09 - Pattie Labelle & Michael McDonald - On My Own</TITLE>
  58.  </SONG>
  59. - <SONG>
  60.  <PLAYEDAT>1159001641</PLAYEDAT>
  61.  <TITLE>08 - Freddie Mercury - The Great Pretender</TITLE>
  62.  </SONG>
  63. - <SONG>
  64.  <PLAYEDAT>1159001430</PLAYEDAT>
  65.  <TITLE>13-TILT _ Runal juz ostatni mur</TITLE>
  66.  </SONG>
  67. - <SONG>
  68.  <PLAYEDAT>1159001184</PLAYEDAT>
  69.  <TITLE>06 - Tina Turner - Two People</TITLE>
  70.  </SONG>
  71. - <SONG>
  72.  <PLAYEDAT>1159000925</PLAYEDAT>
  73.  <TITLE>05 - Eric Clapton - Layla</TITLE>
  74.  </SONG>
  75. - <SONG>
  76.  <PLAYEDAT>1159000717</PLAYEDAT>
  77.  <TITLE>14 Queen - Sheer Heart Attack</TITLE>
  78.  </SONG>
  79. - <SONG>
  80.  <PLAYEDAT>1159000465</PLAYEDAT>
  81.  <TITLE>04. Alanis Morissette - Head Over Feet</TITLE>
  82.  </SONG>
  83. - <SONG>
  84.  <PLAYEDAT>1159000189</PLAYEDAT>
  85.  <TITLE>08 - Kd Lang - Crying [Previously Unreleased]</TITLE>
  86.  </SONG>
  87.  </SONGHISTORY>
  88.  </SHOUTCASTSERVER>


zamienić na tablicę ze zmiennymi, do których można by mieć dostęp na zasadzie:
$tablica['SHOUTCASTSERVER']['CURRENTLISTENERS']; a brnąc dalej:
$tablica['SHOUTCASTSERVER']['WEBDATA']['INDEX'];

Z góry dzięki za pomoc...
TomASS
Mała podpowiedź:
DOM
SAX
SimpleXML

Do wyboru do koloru smile.gif
Troszkę chęci i napiszesz bez problemu smile.gif
Ludvik
Google i xml2array... Znajdziesz to czego potrzebujesz...
The Night Shadow
Natrafiłem na skrypt statystyk, z którym mam problem i do tego dokładnie odnosiło się moje wcześniejsze pytanie:

Kiedy wejść na ten adres: host7.com.pl:6969/admin.cgi?pass=HASŁO&mode=viewxml
naturalnie zamiast HASŁO wpisują poprawne hasło, wyświelta się zawartość strony w formie XML dokładnie tak zbudowana jak to, co wstawiłem w pierwszym moim tu poście. Tak więc hasło z pewnością jest poprawne.

Problem pojawia się w tej linii:

  1. <?php
  2. if (!xml_parse_into_struct($code_xml, $this->dane, $this->values, $this->indexes)) 
  3. {
  4. return false; 
  5. }
  6. ?>


A dokładniej. Kiedy zmienić false na true skrypt na samym dole korzystający z funkcji connect dostaje informację, że udało się połączyć. Wszystkie instrukcje wcześniej są wykonywane. Tak więc problem pojawia się, gdy XML ma być zamieniony na tablicę ze zmiennymi, a to się nie dzieje tzn. powyższy warunek: if (!xml_parse_into_struct($code_xml, $this->dane, $this->values, $this->indexes))  zwraca wartość true, a więc cała funkcja zwraca wartość false.

Czy ktoś wie w czym tkwi problem?

  1. <?php
  2. class ShoutCAST 
  3. { 
  4. var $host, $port, $dane, $values, $indexes;
  5. function connect() 
  6. { 
  7. $fp = @fsockopen ( 'host7.com.pl', '6969', $errno, $errstr, 5);
  8. if (!$fp) 
  9. { 
  10. return false; 
  11. } 
  12. else 
  13. { 
  14. fputs($fp, "GET /admin.cgi?pass=HASŁO&mode=viewxml HTTP/1.0rn"); 
  15. fputs($fp, "User-Agent: Mozillarnrn"); 
  16. while (!feof($fp)) 
  17. { 
  18. $this->dane .= fgets($fp, 512); 
  19. } 
  20. fclose($fp); 
  21. if (stristr($this->dane, "HTTP/1.0 200 OK") != true) 
  22. {
  23. return false; 
  24. }
  25. $code_xml = xml_parser_create(); 
  26. if (!xml_parse_into_struct($code_xml, $this->dane, $this->values, $this->indexes)) 
  27. {
  28. return false; 
  29. }
  30. xml_parser_free($code_xml); 
  31. return true; 
  32. } 
  33. }
  34.  
  35. function showValue($which) 
  36. { 
  37. return($this->values[$this->indexes[$which][0]]["value"]); 
  38. }
  39. }
  40.  
  41.  
  42. $shoutcast = new ShoutCAST(); 
  43. $shoutcast->host = "host7.com.pl"; // adres IP serwera 
  44. $shoutcast->port = '6969'; // port serwera 
  45.  
  46.  
  47.  
  48.  
  49. if ($shoutcast->connect()) 
  50. { 
  51. if ($shoutcast->showValue('STREAMSTATUS')) 
  52. { 
  53. print "Nazwa serwera:".$shoutcast->showValue('SERVERTITLE')."<br>"; 
  54. // I kolejne dane...
  55. } 
  56. else 
  57. { 
  58. print "Serwer jest włączony, ale aktualnie nie ma żadnej audycji."; 
  59. }
  60. } 
  61. else 
  62. { 
  63. print "Serwer jest wyłączony."; 
  64. }
  65. ?>
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.