Template-System mit PHP-Code auswerten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Template-System mit PHP-Code auswerten

    Ich habe ein Template-basiertes Navigation-Script.
    Beim Anlegen des Navigations-Elementes soll man in der URL vorhandene PHP-Variablen in folgender Form mit einbinden können:
    PHP-Code:
    index.php?varname=#PHP#$HTTP_POST_VARS["var_value"]#/PHP# 
    Die Raute könnte dabei eigentlich eine eckige Klammer sein, ich wollte nur nicht das Forum-Script verunsichern
    Der sichtbare Link soll dann aber eigentlich so verarbeitet werden:
    PHP-Code:
    index.php?varname=<?php echo $HTTP_POST_VARS["var_value"]; ?>
    und entsprechend die Ausgabe verabeiten.
    Kennt jemand da eine Variante?
    Zuletzt geändert von Guido; 20.01.2003, 12:31.

  • #2
    mache suchen/ersetzen zum php code..... siehe dein zweites beispiel.

    wenn das ganze aus z.b. einer DB kommt, kannst du eval() verwenden, damit der code durch php geparst wird.

    EDIT:
    ähnliche sachen wurden aber schon mal nachgefragt.
    benutze mal die suche ... nach eval

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Also, dass geht schon mal nicht:
      PHP-Code:
      $theurl="index.php?varname=#PHP#$HTTP_POST_VARS["var_value"]#/PHP#";
      if (
      eregi("#PHP#"$theurl) {
        
      $phpstr strtr $theurl"#PHP#""echo ");
        
      $phpstr strtr $phpstr"#/PHP#"";");
        
      // Platzhalter %link% umwandeln
        
      $t_element->assign("link",eval($phpstr));

      Ich hoffe, bete und teste erst mal
      Guido

      Kommentar


      • #4
        so müsste es aber gehen ...
        du hast vergessen die php tags drumzumachen.

        PHP-Code:
        <?php
          $phpstr 
        strtr $theurl"#PHP#""<?php echo ");
          
        $phpstr strtr $phpstr"#/PHP#""; ?>");
        ?>
        ich würde das echo aber mit in $theurl schreiben. so könntest du diese parsing sache als fkt verpacken und evtl. auch anderswo verwenden.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hier ist die Lösung (gefunden bei http://www.php.net/manual/en/function.eval.php)
          PHP-Code:
          // $theurl nach PHP-Code durchsuchen
          // und ausfuehren
                      
          $theurl = str_replace ("#PHP#", "<?", $theurl);
          $theurl = str_replace ("#/PHP#", "?>", $theurl);
          ob_start();
          eval("?>" . stripslashes($theurl) . "<?php "); 
          $phplink = ob_get_contents();
          ob_end_clean();
          findet und führt den im String $theurl vorhandenen PHP-Code aus
          Die Variable $phplink kann jetzt weiterverwendet werden

          Kommentar


          • #6
            jepp. siehe auch meine erste antwort.... hättest du auch schon eher haben können.
            hauptsacht es geht jetzt.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X