• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] php require()/include() Byte Order Mark (BOM)

hypnoticum

Neues Mitglied
Hallo allerseits,
beim Versuch meinen Code zu strukturieren und zu reduzieren ist ein Phänomen aufgetreten, das ich nicht verstehe:
wenn ich die Dateien mit require() einbinde, wird die Seite anders aufgeteilt als wenn die Quellen direkt mit in die "test.php"-Datei geschrieben werden. Ich bekomme für das Beispiel dann zusäztliche Ränder.
BTW: Wie wird eine Verzeichnissstruktur ordentlich angelegt? Ist es sinvoll einen Ordner für html und einen für php anzulegen bzw. Dateien in denen ein- oder wenigzeilige "<php>irgendwas</php> Anweisungen eingestreut sind nicht auf *.html sondern *.php enden zu lassen? Ein Unterschied ist wohl, dass man sich bei Verwendung von reinem html mit der *.html-Variante den Aufruf des Interpreters sparen kann (ob das bei relativ kleinen Sourcen ein großer Vorteil ist, weiss ich nicht).

test.php:
<?php
$titel="home";

require("../html/test_header.php");
require("../html/test_logo.php");
?>
<div id="outerContent">
text
</div>
<?php
require("../html/footer.html");
?>

test_header.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<title><?php echo $titel ?></title>
<link rel="stylesheet" href="../css/test_style.css" type="text/css"/>
</head>

<body>

test_logo.php:
<div id="outerLogo">
text
</div>

test_style.css:
body {
background-color:grey;
margin: 5px;
padding: 0px;
}

#outerLogo, #outerContent{
min-height: 100px;
width: 100%;
background-color: #6699cc;
}

#outerContent{
margin-top: 5px;
}

footer.html:
</body>
</html>

Die Dateien liegen alle im Ordner "html" mit Ausnahme von der test_style.css die im Ordner "css" im gleichen Verzeichnis wie der "html" Ordner liegt.

Ich tippe auf einen Fehler im header, weiss aber nicht wie ich den Fehler finden soll
 
Irgendwelche whitespace-chars sind im Code, die das Phänomen bewirken. Wenn ich mir den Quelltext anzeigen lasse und diesen dann in den Editor kopiere, werden zuvor im Editor und Quelltextfenster "unsichtbare" Zeichen angezeigt.

Ich hatte zuvor meinen Quelltext in ProgrammersNotepad komplett auf "UTF-8" umgestellt.
Scheinbar wird das gleiche Problem auch hier beschrieben. Wenn ich für alle Dateien Encoding auf "UTF-8 no mark" setze, ist das Problem behoben.

Siehe auch "BOM" (Byte Order Mark)
 
Zuletzt bearbeitet:
Zurück
Oben