AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Frage zur Verwendung Include-Dateien und UTF8
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Frage zur Verwendung Include-Dateien und UTF8

Ein Thema von jensw_2000 · begonnen am 2. Jun 2006 · letzter Beitrag vom 2. Jun 2006
Antwort Antwort
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
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [PHP] Frage zur Verwendung Include-Dateien und UTF8

  Alt 2. Jun 2006, 01:51
Hrm, ja die Zeichensätze... hast du die include-files auch alle als UTF-8 abgespeichert? Wenn die als ANSI vorliegen gehn die Sonderzeichen dann natürlich verloren. In vielen Editoren (ich persönlich nutz in schwierigen Fällen von Zeichensatzverweigerung PSPad) kann man den Zeichensatz einstellen bzw. nachträglich ändern. Alle PHP-Dateien müssen als UTF-8 gespeichert sein, damit das funktioniert. Ein ein UTF-8 Include file eingebunden in ein Ansi-Script erzeugt fehlzeichen. Ein Ansi Include in einem UTF-8 File vernachlässigt die Sonderzeichen einfach. Kurzum: Die Charsets sind konvertierbar, aber nicht kompatibel.

Edit und ein wenig Off-Topic: hast du schon mal an einen Template-Parser in Verbindung mit MySQL gedacht? Dann brauchst du nur ein paar Files und trennst Design, Funktion und Daten komplett
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

Re: [PHP] Frage zur Verwendung Include-Dateien und UTF8

  Alt 2. Jun 2006, 02:13
Zitat von cruiser:
... hast du die include-files auch alle als UTF-8 abgespeichert?
Danke. Das wars ...da wäre ich nie drauf gekommen...
Ich spiele seit über 10 Stunden alle möglichen Konvertierungsfunktionen herum.

Zitat von cruiser:
Edit und ein wenig Off-Topic: hast du schon mal an einen Template-Parser in Verbindung mit MySQL gedacht? Dann brauchst du nur ein paar Files und trennst Design, Funktion und Daten komplett
Wie du siehst, überfordert mich im Moment schon das kleine 1x1. Wenn ich etwas sicherer im Umgang mit PHP bin, dann werfe ich die Website nochmal weg und baue sie mit Templates neu auf. Bis dahin wird aber sicher noch etwas Zeit vergehen.




Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz