Hallo RFZ,
Jemand eine Idee?
Mit einem PHP/CGI-Script geht das nicht. Was Du allerdings machen kannst, ist ein NPH-CGI-Script zu erstellen, das kann direkt an den Browser "zurückschreiben". Such mal in der Apache-Doku nach »nph«. Du musst allerdings die Möglichkeit haben, NPH-CGI-Scripte zu nutzen resp. Zugriff auf die Serverkonfiguration haben. Außerdem müssen NPH-CGI-Scripte *alle* Header selbst senden, inklusive des HTTP/1.0 (oder 1.1) 200 OK und anderen Pflicht-Headern nach dem HTTP-Standard und vor allem auch korrekt auf Anfragen reagieren nach dem HTTP-Standard - Du wirst Dich da also einlesen müssen.
Das NPH-Script kann auch (sofern ein Interpreter bereitsteht) ein CLI-PHP-Script ein (wichtig: CLI-SAPI, nicht CGI-SAPI, da die CGI-SAPI bestimmte Dinge annimmt (eine vollständige CGI-Schnittstelle), die nicht vorhanden sind). Dieses CLI-PHP-Script muss allerdings die Header manuell am Anfang per echo raushauen und nicht Header() verwenden.
Folgendes minimale (und deswegen vermutlich noch nicht ganz standardkonforme) Testscript erzielt das gewünschte Ergebnis:
------------------------------------------------------------
christian@midnight /var/www/localhost/cgi-bin $ cat nph-bla
#!/bin/sh
echo -ne "HTTP/1.1 200 OK\r\n"
echo -ne "content-type:video/nsv\r\n\r\n"
christian@midnight /var/www/localhost/cgi-bin $ curl -v http://localhost/cgi-bin/nph-bla
* About to connect() to localhost port 80
* Trying 127.0.0.1... * connected
* Connected to localhost (127.0.0.1) port 80
GET /cgi-bin/nph-bla HTTP/1.1
User-Agent: curl/7.13.2 (i686-pc-linux-gnu) libcurl/7.13.2 OpenSSL/0.9.7e zlib/1.2.3 libidn/0.5.13
Host: localhost
Pragma: no-cache
Accept: */*
< HTTP/1.1 200 OK
< content-type:video/nsv
------------------------------------------------------------
Aber »content-type:video/nsv«, »content-type: video/nsv« und »Content-Type: video/nsv« sind HTTP-semantisch gesehen identisch - warum solltest Du also ein »content-type:video/nsv« senden wollen, auch wenn das der Shoutcast-Server so macht?
Viele Grüße,
Christian