php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Shoutcast server - fopen failed, icy ok, browser ok


 
Blackgreetz
07-02-2009, 02:17 
 
Hallo,

wie man am Titel eindeutig entnehmen kann (mir fiel nichts sinnvolles ein), hab ich ein Problem mit allen genannten Sachen:

Folgender Code:


$file = 'http://ip:port/played.html';
$content = file_get_contents($file);
#$content = fopen($file,'r');


Ich bekomme, egal ob fopen oder f_g_c:

Warning: file_get_contents(url): failed to open stream: HTTP request failed! ICY 404 Resource
bzw. ICY 200 OK

Das ganze ist ein ShoutCast Server (V1), mit einer Userbegrenzung von 100 Leuten für den Stream.
Hab ich mir gedacht, dass es daran liegt, dass die 100 Slots besetzt sind, aber ich kann die url ja im Browser aufrufen, trotz des vollen Servers, aber PHP kann es nicht.

Nun frag ich mich, wieso kann es PHP nicht? Hab ich im Browser vlt Glück?
Kennst jmd. einen anderen Weg? (fsockopen deaktiviert)

mfg
Edit: problem ist wohl, dass ich noch senden müsste, dass ich ein browser bin, aber wie, wenn ich keine offene ressource habe?
Edit2: Lösung via curl

$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL,$url); // http://ip:port/bla
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("HTTP/1.0\r\nUser-
Agent: XML Getter (Mozilla Compatible)\r\n\r\n"));
$content = curl_exec($ch);


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:44 Uhr.