1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

[PHP] Datei in Variable setzen

Discussion in 'Web-Know-how für die Homepage' started by JojoKoester, May 21, 2007.

Thread Status:
Not open for further replies.
  1. JojoKoester

    JojoKoester Halbes Megabyte

    Hey,

    ich möchte eine Datei in eine Variable laden um diese dann nachher in meinem Template einzufügen.

    Folgende Varianten gehen nicht, da dann kein PHP mehr funktioniert bzw. der Inhalt direkt ausgegeben wird und nicht in die Variable kommt:
    Code:
    if(file_exists("sites/" . $datei)) {
    				$datei = "sites/" . $datei;
    				$dateihandle = fopen($datei, "r");
    					$content = fread($dateihandle, filesize($datei));
    				fclose($dateihandle);
    				
    			} else {
    				die("<tt><b>Fehler!</b><br>Text ist nicht vorhanden. Zurueck über Browsertaste.</tt>");
    }
    
    und
    Code:
    $content = include("sites/" . $datei);
    
    weiß jemande eine andere Lösung?

    gruß
    Jojo
     
  2. kalweit

    kalweit Hüter der Glaskugel

    file_get_contents (+ vermutlich eval) ist dein Freund.
     
  3. JojoKoester

    JojoKoester Halbes Megabyte

    Danke,
    jedoch hilft mir das auch nicht wirklich weiter :D

    Ich habe in den Dateien PHP-Code stehen. Öh..viel Text...besser ein Beispiel:
    index.php
    Code:
    $content = file_get_contents("sites/home.php");
    home.php
    Code:
    HTML-Text/Code funktioniert<br><?php echo "PHP Funktioniert"; ?>
    Tja, wie das so ist: PHP funktioniert natürlich nicht.

    Gibt es da eine weitere Lösung?
     
  4. kalweit

    kalweit Hüter der Glaskugel

    ...dann lies #2 noch mal.
     
  5. JojoKoester

    JojoKoester Halbes Megabyte

    Alles klar, hab das eval nicht als PHP-Funktion wahrgenommen :D

    sodele, bin weiter gekommen. Jedoch habe ich durch die eval() Funktion wieder das gleiche Problem wie vorher auch.
    Der Inhalt wird bei aufrufen der Funktion direkt ausgegeben und nicht in der Variable gespeichert.

    Mein Code:
    Code:
    		$content = file_get_contents("sites/home.php");
    
    		$content = eval ("?> $content <?php ");
    			
    		// Template ausgeben
    			// Seiteninhalt hinzufügen
    				$template -> replace("CONTENT", $content); 
    Dadurch habe ich den Inhalt zwei mal auf meiner Seite. Einmal ganz oben (durch eval()) und weiter unten durch das Template.

    Hast du/ihr eine Lösung?
     
  6. kalweit

    kalweit Hüter der Glaskugel

    müsste nach dem Muster:

    eval ($content="?> $content <?php ");

    funktionieren... (aber mache ich zu selten, halte ich für unsauberen Stil)
     
  7. JojoKoester

    JojoKoester Halbes Megabyte

    danke, das der PHP-Code aus der Datei ausgeführt wird funktioniert soweit.

    Jedoch gibt die Funktion eval den Text direkt aus und das geht nicht mit meinem Templatesystem.
    Ich weiß jedoch auch nicht, wie ich das ändern kann, damit das funktioniert.
     
  8. kalweit

    kalweit Hüter der Glaskugel

    Glaskugel: in der home.php steht irgendwas von echo() u.ä. - eval() macht jetzt genau dass, was du du ihm sagst. Auswege: die Ausgaben in eine Variable schreiben, anstatt sie direkt auf den Bildschirm zu werfen oder eine Cachefunktion drum herum bauen. Hier helfen ob_start(), ob_get_contents(), ob_end_clean(). Ich würde mich an deiner Stelle aber wieder ans Reißbrett setzen und von vorn anfangen - in der Phase geht das noch ohne große Nebenwirkungen ;)
     
  9. binauchhier

    binauchhier Kbyte

  10. kalweit

    kalweit Hüter der Glaskugel

    Ich behaupte mal: Thema verfehlt - d.h. er wäre damit nicht weiter als in seinem ersten Beitrag ;)
     
Thread Status:
Not open for further replies.

Share This Page