Hallo,
ich suche eine PHP-Entsprechung zum initialen Setzen des Content-Types vor der eigentlichen Ausgabe bei Einleitung einer HTML-Push-Seite (Push bedeutet: Die Seite liefert dauernd Daten nach, wird quasi nie fertig, bekannt z.B. aus HTML-Chats)
Beispiel in Perl (Syntax ist PHP-tauglich, Verhalten mit „echo“ statt „print“ ist unter PHP identisch):
print "Content-type: multipart/x-mixed-replace;boundary=Seite
";
print "--Seite
";
print "Content-type: text/html
";
print "<html><body>
";
...
print "</BODY></HTML>
";
print "--Seite--
";
Probleme bei / Fragen zu PHP:
(1) Content-Type läßt sich so nicht wirksam setzen. Der String wird stattdessen als Text dargestellt. Wie macht man das dedizierte Setzen in PHP denn dann?
(2) „http_send_content_type()“ (gefunden im Manual bei php.net) liefert „Call to undefined function“. Ebenso alle „verwandten Befehle“.
- muß ich da was zusätzliches installieren?
- reicht die IPS-PHP-Version nicht aus? phpversion() auf dem IPS-Server sagt: 5.1.6
(unter php.net sehe ich dazu nichts wegen evtl. Minimalanforderungen, außer eben PHP 5)
(3) „http_send_stream()“ klingt vielversprechend, bringt aber ebenso „Call to undefined function“. Wäre das aber der richtige Ansatz für HTML-Push? Oder wie macht man das üblicherweise unter PHP?
(4) Wäre das Simple-Web-Interface im IPS überhaupt Push-tauglich, oder geht das da prinzipiell sowieso nicht?
Z.B. habe ich bisher auch kein Flushen hinbekommen (=Daten werden sofort ohne Buffer ausgegeben)
Unter Perl:
$|=1;
Unter PHP lt. php.net und diversen Google-Treffern:
@ob_flush();
flush();
Trotz Zeitschleife im Script kommt der Output aber immer erst, wenn gesamte Abarbeitung fertig ist. Kann das das Simple-Web-Interface überhaupt, oder brauche ich allein dafür schon einen „großen“ Webserver auf dem IPS-Server?
Hat da netterweise vielleicht mal jemand einen Tipp, bevor ich da weiter sinnlos Zeit vergeude?
Gruß Gerd
PS …das ich da in die Laufzeitbegrenzung der IPS-Scripts laufe, ist mir klar. Wollte da aber mit Webbrowser-Objekt zugreifen aus Designer heraus, das wäre davon dann doch nicht betroffen.