Hallo und guten Morgen,
der Fehler steckte nicth in der Funktion.
Erst nachdem ich mittels Whireshark sehen konnte, dass da ein Content-Body gesendet wurde, und dann nochmal genau hingesehen habe, was ich eigentlich ausgebe, bin ich auf die Lösung gekommen.
Bei der Billigversion habe ich einfach nur
echo $content;
geschrieben, was dann dazu geführt hat, dass der Browser sofort noch die Sekundärrequests ausgeführt hat, was aber unbemerkt blieb, weil z.B. der Urchin-Tracker oder auch die Images auf meinem Testserver nicht zu finden sind ...
Bei meiner Funktion hatte ich hingegen geschrieben
echo htmlspecialchars($_page['body']);
was dazu führte, dass keine Anzeige erfolgte.
Warum?
Weil PHP hier eine Macke hat!
echo htmlspecialchars($_page['body'], ENT_QUOTES, 'ISO-8859-1');
Man muss für htmlspecialchars neuerdings eine Codierung angeben, damit es zuverlässig arbeitet. Ulkigerweise produziert es manchmal eine Ausgabe und manchmal nicht. Auch die Einstellung
ini_set('default_charset', $charset);
ändert leider nichts daran.
Ich hatte diesen merkwürdingen Fehler neulich schon mal, und habe ihn mir eben leider nicht gemerkt. Da ich noch nicht herausgefunden habe, wann htmlspecialchars() nun noch arbeitet und wann nicht, muss ich also erst einmal alle wesentlichen Skripte nacharbeiten und die Parameter ergänzen.
BTW: hier wäre jetzt der Tag "Bug?" angebracht. Und später dann vielleicht noch "Bug!" ;-))
Grüße
TS