Webstatt.org - Community seit 2006 - 2012 (2024?)

Zeilenumbrüche bei fopen

Avatar user-317
02.03.2006 00:26

Sodelle, ich schmettere glatt mal die 1. Frage raus.
Mein Problem : Ich lade meine Templates für mein CMS per fopen, allerdings erhalte
ich dadurch irgendwie einen Haufen Zeilenumbrüche -> unvalider Code im nachhinein traurig
Hier meine Funktion :
// Loading template
function loadtpl ($filename) {
$opentpl = fopen ($filename, 'r'zwinkern;
$file = fread ($opentpl, filesize ($filename));

return $file;
fclose ($file);
}


Meine index.php :
<?php
// Load Templates
$main = loadtpl ($MODULE['template']);

// Parse template and print out
$main = str_replace ('{pfad}', $a_PAGE['pfad'], $main);
$main = str_replace ('{build:navigation}', get_menu (), $main);
$main = str_replace ('{build:content}', get_content ($_GET['modul']), $main);

echo $main;
?>


Und hier könnt ihr auch das ganze gleich mal angucken (Quelltext anzeigen lassen) :
http://www.beatboxscene.de

Jemand ne Idee wie ich die Zeilenumbrüche wegbekomme bzw. woher die kommen?
Danke euch schonmal.

Edit: Stellt mal die Schriftgröße für die PHP-Highlights rauf bitte :/

Avatar user-124
02.03.2006 00:33

kannst du den Code mit den fehlerhaften Zeilenumbrüchen - also die Ausgabe - hier kurz posten? Ich sehe auf deiner Seite nicht, was du meinst.

lG

brb

Avatar user-317
02.03.2006 00:35

Original von user-317
Und hier könnt ihr auch das ganze gleich mal angucken (Quelltext anzeigen lassen) :
http://www.beatboxscene.de


zwinkern

		 


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>....


Ich hab immer vor meiner XML Deklaration Zeileumbrüche drinnen.

Avatar user-124
02.03.2006 00:48

*lol* das wäre mir gar nicht als Fehler aufgefallen, dachte, du hast HTML- Zeilenumbrüche.... aber im Template ist alles "sauber", oder?

Avatar user-317
02.03.2006 00:49

Tja, da geht bei mir wieder der Perfektionist durch zwinkern
Japp, im Template ist bei mir alles sauber. Nur diese Zeilenumbrüche da
stören mich extrem, da dadurch bei der CSS Validierung was schief geht traurig

user-303
02.03.2006 01:19

// Loading template
function loadtpl ($filename) {
$opentpl = fopen ($filename, 'r'zwinkern;
$file = fread ($opentpl, filesize ($filename));

return $file;
fclose ($file);
}

das ist falsch.

gründe:

-nach return wird kein code mehr ausgeführt.
-selbst wenn der code noch ausgeführt würde, müsstest du $opentpl an fclose übergeben.

dein resultat ist nun, dass die datei bis scriptende offen bleibt. du könntest also niemals eine template 2 mal holen.

Avatar user-317
02.03.2006 01:20

Wobei sich immernoch nicht das Problem löst zwinkern
Aber egal.....
Siehste mal, sowas passiert wenn man zu lange wach ist :/
Danke dir

Avatar user-255
02.03.2006 09:05

dumme frage, aber wieso nutzt du nicht einfach file() bzw. file_get_contents() ?

ne quick'n'dirty lösung wäre, mit trim() nachzuhelfen, aber damit wirst du dich wahrscheinlich nicht zufrieden geben Fettes Grinsen

deaktiviere mal systematisch diverse include anweisungen und schau, wann die whitespaces auftreten.

die natur (und damit auch PHP) würfelt nicht. zwinkern

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-317
02.03.2006 09:34

Gute Frage :/
Wird gleich mal ausprobiert.

user-128
02.03.2006 14:35

ich möchte in mein cms auch gerne eine template funktion einbauen...
kann man da an der gewünschten stelle nicht einfach per:

<?php include("template.html"zwinkern ?> einfügen ???

und die inhalte mit preg_replace einfügen ????

also zB. {name} und dann {name} = preg_replace...

Avatar user-317
02.03.2006 14:38

Du brauchst aber deinen Inhalt zunächst in einer Variable zwinkern

Avatar user-124
02.03.2006 14:49

wobei das letztendlich keinen Unterschied macht, user-317 hat anstatt der Variable halt eine Funktion, die den jeweiligen Inhalt zurückgibt.

In meinen ersten Templates hatte ich unmittelbar php- includes stehen, so dass ich die templates direkt includieren konnte und nur den Vars vorher Werte zuweisen musste... nicht sehr schön, ging aber auch zwinkern

Avatar user-168
02.03.2006 20:05

Zum Thema Template habe ich da noch einen Tipp.

Schaut euch da mal http://kuerbis.org/template/ an, da gibt es ne Templateklasse. Die kann man bei Bedarf ja einfach ins Deutsche übersetzen und nach Wunsch modifizieren.


Ansonsten zu den zeilenumbrüchen:
Ich benutze bei meinem Templatesystem auch file() und setze das Array dann per foreach einfach in der Variablen $file zusammen. Notfalls einfach alle "Leerzeichen" und somit auch Zeilenumbrüche am Anfang und Ende der Variablen rauswerfen. zwinkern

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche