Moin!
Hab da ein kleines "Rest"-Problem mit dem Einlesen von einem Template (pures html) in ein php-Script.
<-- Script -->
$import = fopen("$rootpath/$tplpath/artikel_bilder.tpl", "r");
$ersatz = fread($import,9999999);
fclose($import);
Das ist nicht so wahnsinnig schön programmiert. Du hast zwei bessere Alternativen und eine Verbesserung deiner Variante:
1. Es gibt ab PHP 4.3 den Befehl file_get_contents($dateiname), der den Inhalt der Datei als String zurückliefert. Dieser Befehl macht genau das, was du in deinen drei Zeilen versuchst zu fabrizieren.
2. Außerdem gibts den Befehl file($dateiname), welcher den Inhalt der Datei als Array zurückliefert, pro Zeile ein Arrayelement. Das kann man hinterher in einen String zusammenbasteln. Empfehlenswert, wenn du eine PHP-Version vor 4.3 benutzen mußt oder zu ihr kompatibel bleiben willst.
3. Deine Version ist vom Grundsatz her deshalb schlecht, weil du einfach mal 10 Megabyte Eingabepuffer reservierst, den die Datei grundsätzlich einnehmen könnte. Du kannst aber leicht herausfinden, wie groß die Datei wirklich ist, indem du die Funktion filesize($dateiname) anwendest und als zu lesende Bytezahl übergibst. Macht die ganze Funktion mit Sicherheit schneller.
Das Problem bei der Einlese des Template ist jetzt, dass bei jeder Zeile des Templates jetzt ein <br> vorangesetzt wird. Ist natürlich ein untragbarer Zustand. Gibt es hier ein kleinen Zusatzbefehl mit dem man dem php-Script sagt "behandle das ganze wie einen langen String"?!
Das <br> kommt garantiert nicht aus deiner Einlesefunktion. Das muß woanders herkommen. Vielleicht passiert es beim Speichern schon. Schau nach, was im Quelltext tatsächlich im Template steht. Wenn die <br> da schon drin sind, macht dein Skript alles richtig - zumindest beim Einlesen.
Oder du hast beim Umwandeln einen Denkfehler gemacht und haust <br> rein.
- Sven Rautenberg
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|