unerwünschtes Sonderzeichen bei include()

Loveboat

Erfahrenes Mitglied
Hallo Leute,

wollt mich im neuen Jahr auch mal wieder bei Euch mit einem kleinen Problem melden.

Bis letzte Woche hatte ich auf einer Webseite eines Freundes keinerlei Probleme. Seit dieser Wocher allerdings haben sich einige Formatierungen verändert. Zuerst dachte ich an einer Fehlprogrammierung, aber nach einigen Tests habe ich folgendes herausgefunden.

Auf dieser Seite lade ich eine sogenannte Sprachdatei welche nur mit Variablen gefüllt ist, um die Webseite in verschiedenen Sprachen darstellen zu können. Und genau beim Laden, welches ich mit include tätige, geschieht etwas komisches. Im Quelltext der fertigen Site erhalte ich dann ein Sonderzeichen. Ist dies normal?

Hier ein Beispiel (mit Absicht in einer Zeile das niemand sagen würde ich hätte ein Sonderzeichen drin :) ):

index.php:
PHP:
<?include'include.php';?>

include.php:
PHP:
<?;echo'Dies ist der text aus der include.php';?>


Ergebnis des Quelltextes:
http://home.arcor.de/dirk.dietz/tutorials/ergenis.jpg


Was ist das für ein Sonderzeichen in der angefügten Grafik vor dem ersten Buchstaben?
Ist dies immer da? Komischerweise hab ich das seit dieser Woche erst, früher hab ich das nie gesehen beim Kontrollieren des Quellcodes.

Hoffe jemand kann mir sagen was hier los ist.

Danke und Gruß
Loveboat
 
Hoffe dass ich das jetzt richtig verstanden habe :-)

in meiner index.php habe ich beide schon mal ausprobiert:

HTML:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

und wie bei Wiki schon beschrieben hatte ich auch schon diese Zeichen
HTML:

erhalten.

includen tu ich verschiedene Dateien welche eine Nummer enthalten. In diesen Dateien sind einfache HTML-Tabellen enthalten mit Text, Bilder, und so weiter. Manche haben auch PHP-Code drin für eine Bewertung oder so. Also gibt es kein head, body oder sonstiges.

Mach ich hier nen Fehler? Warum ging es die ganze Zeit? Bin ja lernfähig....aber manchmal weiß man alleine nicht weiter....bin froh bei Euch sein zu dürfen ;-)
 
Du musst die Dateien ganz einfach als UTF-8-kodiert aber ohne die BOM (manchmal auch Signatur genannt) speichern.
 
Hallo Leute,

danke für eure Infos.

zum 1.) Das Semikolon habe ich nur reingemacht weil ich eine Trennung zwischen dem ? und dem ersten Kommando haben wollte, ist aber ohne genauso wie mit.

zum 2.) ah, mit dem Code hat sich irgendwas verändert. Habe es nochmal als UTF-8 abgespeichert und schon wird es das Sonderzeichen weg.

ABER: Warum war es früher nie da? Hatte nichts mehr an meinem Code geändert! Und von heute auf morgen wird es anders angezeigt...

Danke

Gruß
Loveboat
 
Die BOM steht eigentlich nur am Anfang eines Dokuments. Wenn du es allerdings aus mehreren Dateien zusammensetzt und in allen eine BOM vorkommt, sind sie sichtbar, da die BOM eben nur am Anfang eines Dokuments erlaubt ist.
 
Zurück