Ersetzen eines Platzhalters

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ersetzen eines Platzhalters

    Hallo,

    ich möchte ganz einfach einen Platzhalter {platzhalter} ersetzen durch einen von der Datenbank ausgelesenen Wert "beispiel".
    Leider komme ich nicht wirklich weiter, egal wie viel ich google und Foren durchsuche.

    Folgenden Code habe ich schon zusammengefriemelt:

    Quellcode

    1. $TagStart = "{";
    2. $TagEnd = "}";
    3. $TemplateFilePath = include("templates/main.tpl");
    4. if($TemplateFilePath)
    5. {
    6. include("inc/db.connect.php");
    7. $readdb = mysql_query("SELECT * FROM allgemeine_einstellungen");
    8. while($row = mysql_fetch_assoc($readdb))
    9. {
    10. $replace = preg_replace($TagStart.$row['platzhalter'].$TagEnd, $row['inhalt'], $TemplateFilePath);
    11. echo "$replace";
    12. }
    13. }
    Alles anzeigen


    Habe aber etwas anderes hier im Forum entdeckt, kann mir jemand erklären was /{\w+}/siU ist ?
    Also habe gelesen dass man sowas für Platzhalter verwendet zum auslesen und überschrieben aber wie?

    Quellcode

    1. preg_match_all("/{\w+}/siU", $file, $regex);


    Würde mich über schnelle Hilfe freuen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von CocaColaZero ()

  • okok ist ja gut:)

    ja habe auch str_replace schon ausprobiert, funktioniert leider nicht.
    Was könnte im Code NICHT stimmen?
    den funktionieren tut es ja nicht.

    Quellcode

    1. $TagStart = "{";
    2. $TagEnd = "}";
    3. $TemplateFilePath = include("templates/main.tpl");
    4. if($TemplateFilePath)
    5. {
    6. include("inc/db.connect.php");
    7. $readdb = mysql_query("SELECT * FROM allgemeine_einstellungen");
    8. while($row = mysql_fetch_assoc($readdb))
    9. {
    10. $replace = str_replace($TagStart.$row['platzhalter'].$TagEnd, $row['inhalt'], $TemplateFilePath);
    11. echo $replace;
    12. }
    13. }
    Alles anzeigen
  • CocaColaZero schrieb:

    Was könnte im Code NICHT stimmen?

    include ist keine Funktion und weder ein Boolean noch einen String zurück.
    Kleiner Tipp: str_replace arbeitet auch mit Arrays.

    Quellcode

    1. include "inc/db.connect.php";
    2. $tagStart = "{";
    3. $tagEnd = "}";
    4. $template = file_get_contents("templates/main.tpl");
    5. $replace = array();
    6. $readdb = mysql_query("SELECT platzhalter,inhalt FROM allgemeine_einstellungen");
    7. while($row = mysql_fetch_assoc($readdb)) {
    8. $key = $tagStart.$row['platzhalter'].$tagEnd;
    9. $replace[$key] = $row['inhalt'];
    10. }
    11. echo str_replace(array_keys($replace), array_values($replace), $template);
    Alles anzeigen
  • könnte ich dafür get_content_files benutzten?


    d0nut hat dir doch schon eine Lösung gezeigt:

    Quellcode

    1. $template = file_get_contents("templates/main.tpl");

    (Außerdem hast du es wohl nur verdreht get_content_files gibt es nicht)

    Wie man das ganze mit Arrays realisiert weiss ich, das Problem ist, dass ich das ganze statt in einem Array, in einer Datenbank speichern möchte, also die Werte die die Platzhalter ersetzen.

    Wo ist das Problem? Nur weil es ein Array ist, heißt es doch nicht, dass du das ganze nicht mehr in eine Datenbank schreiben kannst.