Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Парсинг удалённого файла по любому порту ?

Сообщения:  [1-4] 

 
 автор: long_snake   (02.08.2006 в 10:08)   письмо автору
 
   для: long_snake   (02.08.2006 в 06:04)
 

Вообщем получилось через сокеты (поиск рулит :-) )

<?php
$buffer
="";
if (!(
$fp = @fsockopen("snake"9999$errno$errstr30))) {
    die(
"could not open XML input");
}

$out  "GET /admin.cgi?mode=viewxml HTTP/1.1\r\n";
$out .= "Host: snake\r\n";
$out .= "Referer: snake\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "Proxy-Authorization: Basic " base64_encode("admin:adminpass") . "\r\n";
$out .= "Authorization: Basic " base64_encode("admin:adminpass") . "\r\n";
$out .= "\r\n";

fwrite($fp$out);
while (!
feof($fp)) {
  
$buffer .= fgets($fp1024);
}
echo 
$buffer;
fclose($fp);
?>



результат:

HTTP/1.0 200 OK
Content-Type:text/xml

<?xml version="1.0" standalone="yes" ?><!DOCTYPE SHOUTCASTSERVER 
[<!ELEMENT SHOUTCASTSERVER (CURRENTLISTENERS,PEAKLISTENERS,MAXLISTENERS,REPORTEDLISTENERS,AVERAGETIME,SERVERGENRE,SERVERURL,SERVERTITLE,SONGTITLE,SONGURL,IRC,ICQ,AIM,WEBHITS,STREAMHITS,STREAMSTATUS,BITRATE,CONTENT,VERSION,WEBDATA,LISTENERS,SONGHISTORY)>
<!ELEMENT CURRENTLISTENERS (#PCDATA)><!ELEMENT PEAKLISTENERS (#PCDATA)>
<!ELEMENT MAXLISTENERS (#PCDATA)><!ELEMENT REPORTEDLISTENERS (#PCDATA)>
<!ELEMENT AVERAGETIME (#PCDATA)><!ELEMENT SERVERGENRE (#PCDATA)>
<!ELEMENT SERVERURL (#PCDATA)><!ELEMENT SERVERTITLE (#PCDATA)>
<!ELEMENT SONGTITLE (#PCDATA)><!ELEMENT SONGURL (#PCDATA)>
<!ELEMENT IRC (#PCDATA)><!ELEMENT ICQ (#PCDATA)><!ELEMENT AIM (#PCDATA)>
<!ELEMENT WEBHITS (#PCDATA)><!ELEMENT STREAMHITS (#PCDATA)>
<!ELEMENT STREAMSTATUS (#PCDATA)><!ELEMENT BITRATE (#PCDATA)>
<!ELEMENT CONTENT (#PCDATA)><!ELEMENT VERSION (#PCDATA)>
<!ELEMENT WEBDATA (INDEX,LISTEN,PALM7,LOGIN,LOGINFAIL,PLAYED,COOKIE,ADMIN,UPDINFO,KICKSRC,KICKDST,UNBANDST,BANDST,VIEWBAN,UNRIPDST,RIPDST,VIEWRIP,VIEWXML,VIEWLOG,INVALID)><!ELEMENT INDEX (#PCDATA)>
<!ELEMENT LISTEN (#PCDATA)>
<!ELEMENT PALM7 (#PCDATA)>
<!ELEMENT LOGIN (#PCDATA)>
<!ELEMENT LOGINFAIL (#PCDATA)>
<!ELEMENT PLAYED (#PCDATA)>
<!ELEMENT COOKIE (#PCDATA)>
<!ELEMENT ADMIN (#PCDATA)>
<!ELEMENT UPDINFO (#PCDATA)>
<!ELEMENT KICKSRC (#PCDATA)>
<!ELEMENT KICKDST (#PCDATA)>
<!ELEMENT UNBANDST (#PCDATA)>
<!ELEMENT BANDST (#PCDATA)>
<!ELEMENT VIEWBAN (#PCDATA)>
<!ELEMENT UNRIPDST (#PCDATA)>
<!ELEMENT RIPDST (#PCDATA)>
<!ELEMENT VIEWRIP (#PCDATA)>
<!ELEMENT VIEWXML (#PCDATA)>
<!ELEMENT VIEWLOG (#PCDATA)>
ets.]>
<SHOUTCASTSERVER>
<CURRENTLISTENERS>1</CURRENTLISTENERS>
<PEAKLISTENERS>2</PEAKLISTENERS>
<MAXLISTENERS>32</MAXLISTENERS>
<REPORTEDLISTENERS>1</REPORTEDLISTENERS>
<AVERAGETIME>199</AVERAGETIME>
<SERVERGENRE></SERVERGENRE>
<SERVERURL>http://snake/</SERVERURL>
<SERVERTITLE>Snake Music</SERVERTITLE>
<SONGTITLE>Ridgewalkers Feat. El - Find (Kyau vs. Albert Remix)</SONGTITLE>
<SONGURL></SONGURL>
<IRC>#shoutcast</IRC>
<ICQ>0</ICQ><AIM>N/A</AIM><WEBHITS>218</WEBHITS><STREAMHITS>19</STREAMHITS><STREAMSTATUS>1
</STREAMSTATUS>
.............
<SONGHISTORY>
<SONG><PLAYEDAT>1154498251</PLAYEDAT><TITLE>Ridgewalkers Feat. El - Find (Kyau vs. Albert Remix)</TITLE>
</SONG><SONG><PLAYEDAT>1154497697</PLAYEDAT><TITLE>Adam White Feat Martin Grech - Ballerina (Matt Darey Remix)</TITLE></SONG><
SONG><PLAYEDAT>1154497160</PLAYEDAT><TITLE>U2 - New Year&#x27;s Day (Ferry Corsten Remix)</TITLE></SONG>
<SONG><PLAYEDAT>1154496654</PLAYEDAT><TITLE>Estuera vs Re:Locate - Palma Salone</TITLE></SONG>
<SONG><PLAYEDAT>1154496238</PLAYEDAT><TITLE>Perasma - Swing 2 Harmony (Edu Jimenez VS DJ Nano Remix)</TITLE></SONG>
<SONG><PLAYEDAT>1154495710</PLAYEDAT><TITLE>Jay Saunders and Jon the Baptist - Evolution (Dave the Drummer Remix)</TITLE></SONG>
<SONG><PLAYEDAT>1154495226</PLAYEDAT><TITLE>Lenny Kravitz - R U Gonna Go My Way E-Craig 212 Mix</TITLE></SONG><SONG><PLAYEDAT>1154494999</PLAYEDAT><TITLE>Ayu - Appears  Kyau Vs Albert Radio Edit</TITLE></SONG>
<SONG><PLAYEDAT>1154494505</PLAYEDAT><TITLE>Perasma - Swing 2 Harmony (Deserves An Effort Symphony Dub Mix)</TITLE></SONG>
<SONG><PLAYEDAT>1154494050</PLAYEDAT><TITLE>Midor &#x26; Six4eight  - Soundscape</TITLE></SONG>
</SONGHISTORY>
</SHOUTCASTSERVER>



Как его парсить?

xml_parse($xml_parser, $buffer)
выдаёт
XML error: not well-formed (invalid token) at line 1

Может регексп лучше юзать? (а я в нём не силён)

   
 
 автор: long_snake   (02.08.2006 в 06:04)   письмо автору
 
   для: cheops   (01.08.2006 в 22:26)
 

1. реальный урл http://snake:9999/admin.cgi?mode=viewxml

выдаёт что-то типа:

<?xml version="1.0" standalone="yes" ?> 
  <!DOCTYPE SHOUTCASTSERVER (View Source for full doctype...)> 
 <SHOUTCASTSERVER>
  <CURRENTLISTENERS>0</CURRENTLISTENERS> 
  <PEAKLISTENERS>0</PEAKLISTENERS> 
  <MAXLISTENERS>32</MAXLISTENERS> 
  <REPORTEDLISTENERS>0</REPORTEDLISTENERS> 
  <AVERAGETIME>1</AVERAGETIME> 
  <SERVERGENRE>N/A</SERVERGENRE> 
  <SERVERURL>http://www.shoutcast.com</SERVERURL> 
  <SERVERTITLE>N/A</SERVERTITLE> 
  .................................. и т.д.


Причём это в локалке

2. если работать с сокетами (не в локалке), то какие параметры в fputs ?
Может кто-то может выложить примерчик?

   
 
 автор: cheops   (01.08.2006 в 22:26)   письмо автору
 
   для: long_snake   (01.08.2006 в 12:43)
 

Что-то странный URL, файл действительно называется *.xml?

PS При работе через прокси-сервер придётся использовать сокеты.

   
 
 автор: long_snake   (01.08.2006 в 12:43)   письмо автору
 
 

есть линка http://hostname:9999/*.xml

Выдаёт failed to open stream, с разными окончаниями
Пробывал file_get_contents, fopen, file . include , через сокеты, один фиг
Обясните плизз, может я что-то не так делаю...

И ещё:

fopen, include локально работают для 80-го, а из инета ни в какую (лажу через проксю), ругается
Warning: fopen(http://cnews.ru/news.xml): failed to open stream: Bad file descriptor

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования