Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#1

[PHP] Frage zur Verwendung Include-Dateien und UTF8

  Alt 2. Jun 2006, 01:21
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
};
?>
  Mit Zitat antworten Zitat