Guten Morgen
Ich stehe auf dem Schlauch ...
Alle meine Webseiten verwenden den Zeichensatz UTF8.
Um den
HTML-Code der Seiten übersichtlicher zu halten und die doppelte Pflege von mehrfach vorkommenden Inhalten zu umgehen, habe ich teile des
HTML-Codes in PHP-Include-Dateien ausgelagert.
Diese Includefiles beinhalten eine Funktion, die den ausgelagerten
HTML-Code direkt ausgibt (ohne "Return($irgendwas)" ).
Das Grundprinzip ohne Return-Value gefällt mit gut, weil ich nicht 1000 kleine
HTML Zeilen samt eingebetten PHP Funktionen in einem ellenlangen verketteten String legen muss, um diesen nachher mit RETURN zurückzugeben.
Mein Problem ist, das alle Umlaute und Sonderzeichen aus der Include-Datei bei der Ausgabe nicht mehr vorhanden sind.
Bei kleineren Includefiles habe ich den "KettenString" in Kauf genommen und diesen mit
RETURN utf8_encode($kettenString); an die Website zurückgegeben. Dann stimmt die Darstellung der Umlaute.
Bei großen IncludeFiles möchte ich jedoch auf diesen Umweg verzichten, weil durch die Verkettung von
HTML und eingebetten PHP Ausgaben ein undurchschaubares "Anführungszeichen"-Chaos entsteht.
Jedesmal wenn ich etwas an einem solchen Includefile ändere, kann ich mich auf eine aufgibige Fehlersuche einstellen. Ein '"' geht immer drauf
.
Es muss duch irgendwie möglich sein, dem PHP-Indludefile einen Zeichsatz aufs Auge zu drücken
.
Hier noch einmal 2 Beispiel-Codes (index.php samt Include-File "Projektbeschreibung.inc.php")..
index.php
Code:
<?php
include ("Projektbeschreibung.inc.php");
?>
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html xml:lang="de" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/
html; charset=utf-8">
<title>Home</title>
</head>
<body>
Bla ... </p>
Hiernach wird ein Text aus dem Include-File "Projektbeschreibung.inc.php" dargestellt. Leider werden die deutschen Sonderzeichen nicht richtig übernommen. Scheinbar mache ich was falsch ... :o(
<?php showProjektbeschreibung() ?>
</body>
</
html>
Das Includefile ("Projektbeschreibung.inc.php")
Code:
<?php
function showProjektbeschreibung()
{
?>
Hier kommt jetzt eine Menge
HTML Code, dem ich mit Hilfe der Includedatei auf der index.php verbannen will.</p>
Leider enthält dieser
HTML-Code Umlaute und Sonderzeichen , die nach dem Aufruf der Funktion "showProjektbeschreibung()" aus der index.php nicht richtig dargestellt werden.</p>
Bei sehr kurzen Includefiles habe ich den kompletten
HTML-Code in eine Variable geschrieben, wie ich dann mit Hilfe von RETURN utf8_encode($meinHtmlCode) an die index.php zurückgebe. Das funktioniert auch.</p>
Bei sehr langen Includefiles finde ich den Weg über den codierten Rückgabewert unpraktikabel, weil der komplette
HTML Code und die eingebetteten
HTML-Aufrufe fein säuberlich in einen verketteten String gepackt werden müssen. Jedesmal wenn man etwas am Code ändert und dabei ein Anführungszeichen bewegt, hat man mit sehr hoher Wahrscheinlichkeit die Stringverkettung oder den
HTML-Code zerstört ...</p>
Daher möchte ich möglichst versuchen, den
HTML-Code (wie in diesem Beispiel) direkt und ohne Funktions-Rückgabewert auszugeben.</p>
</br>
Weis jemand, wie ich den "Standard-"Zeichensatz der Includedatei auf UTF8 ändern kann? Mit der Header-Funktion habe ich bisher keinen nennenswerten Erfolg gehabt</p>
<?php
};
?>