php-tags splitten

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

  • php-tags splitten

    Hallo,
    ich würde gerne mit preg_split (?) einen String spalten, aber das will nicht so recht klappen.
    Der String hat _genau_ diesen Inhalt (mit php-Tags!):

    PHP-Code:
    <?php
            
    echo $foo;
    ?>
    <h1>test</h1>
    <?php
            
    echo $foo;
    ?>
    <h2>sadf</h2>
    Herauskommen soll ein Array, dass
    - den obersten PHP-Code (ohne "<?php"- und "?>"-Tags)
    - die normalen HTML-Anweisungen
    - und die anderen optionalen PHP-Anweisung (wiederum ohne "<?php"- und "?>"-Tags)

    Ich scheitere leider schon daran via RegExp auf den Inhalt zwischen <?php und ?> zuzugreifen. Hiiilfeee

  • #2
    Zeig mal deinen Code und vor allem deinen regulären Ausdruck.

    Kommentar


    • #3
      Code:
      $pattern = '=<\?php(.*)\?>(.*)<\?php(.*)\?>=isU'; 
      $result = preg_match($pattern, $deinString, $subpattern);
      http://regexp-evaluator.de/evaluator...3799/#ergebnis
      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Danke jahlives, allerdings kommt nicht genau das raus, was ich möchte.

        array[0] -> <?php echo $foo;?>

        array[1] -> <h1>test</h1>

        array[2] -> <?php echo $foo;?>

        array[3] -> <h2>sadf</h2>

        würde ich gerne als ergebnis haben, mein bisheriger regexp sah so aus

        PHP-Code:
        /<\?php(.*)\?>/s 
        ... allerdings kam dort nichts sinnvolles raus

        Kommentar


        • #5
          http://regexp-evaluator.de/evaluator...dc2a/#ergebnis

          Da ist jetzt nur anders geklammert. Aber dein Anliegen ist nicht so trivial wie du glaubst, siehe http://regexp-evaluator.de/evaluator...352c/#ergebnis
          Zuletzt geändert von onemorenerd; 17.08.2007, 17:13.

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            http://regexp-evaluator.de/evaluator...dc2a/#ergebnis

            Da ist jetzt nur anders geklammert. Aber dein Anliegen ist nicht so trivial wie du glaubst, siehe http://regexp-evaluator.de/evaluator...352c/#ergebnis
            ... sonst hätte ich mein Anliegen auch nicht hier gepostet

            Aber mein Vorhaben sollte ja nicht exotisch sein: es wird eine Datei eingelesen, der PHP-Code wird ge'eval()'d und der html-Code einfach ausgegeben. Vielleicht shit by design? Alternativ wollte ich ob_start() nutzen, allerdings kapiere ich den Ablauf dabei nicht so richtig. Darf ich dabei kein echo nutzen und muss alles zum Ausgeben in eine Variable kleben?? Hat jemand eine Antleitung für ob_start() und die damit verbundenen Funktionen (und jetzt komm nicht mit dem PHP-Manual ^^)?

            Kommentar


            • #7
              Ja, "shit design" wenn du auf eval() angewiesen bist.
              Aber ist dir mal in den Sinn gekommen, dass du die gesamte Eingabe (HTML + PHP-Code) unverändert eval'n kannst? Du mußt das nicht erst zerlegen.

              Kommentar


              • #8
                es wird eine Datei eingelesen, der PHP-Code wird ge'eval()'d und der html-Code einfach ausgegeben. Vielleicht shit by design?
                :wall: Wozu soll das gut sein? Kennst du include? macht genau das gleiche.

                Alternativ wollte ich ob_start() nutzen, allerdings kapiere ich den Ablauf dabei nicht so richtig. Darf ich dabei kein echo nutzen und muss alles zum Ausgeben in eine Variable kleben??
                unfug, genau deshab gibt OUTPUT Buffering, um die ausgabe via echo in eine Variable zu packen.

                Hat jemand eine Antleitung für ob_start() und die damit verbundenen Funktionen (und jetzt komm nicht mit dem PHP-Manual ^^)?
                Doch! Genau da steht alles wissenswerte drin. So schwer ist es nun wirklich nicht. Wenn du konkrete Fragen hast,kannst du gerne fragen.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  :wall: Wozu soll das gut sein? Kennst du include? macht genau das gleiche.
                  include() kann ich nicht nehmen weil die Variablen zum Zeitpunkt des parsens noch nicht den richtigen Wert haben(<title> im Head). Nun gut, dann werde ich mich mal durch ob_start() hacken bis ich es kapiert habe... und das am Freitag

                  Kommentar


                  • #10
                    Original geschrieben von miguel_rkc
                    include() kann ich nicht nehmen weil die Variablen zum Zeitpunkt des parsens noch nicht den richtigen Wert haben(<title> im Head).
                    verstehe ich nicht.
                    die variable muss doch zur laufzeit des scriptes bekannt sein, sonst nützt dir doch eval() genauso wenig

                    Kommentar


                    • #11
                      Oh mein Gott, überdenke mal deine Programmstruktur. Wenn du wegen nem Pagetitle schon zu solchen mitteln greifen musst, was machst du, wenn du irgend wann mal so weit bist, dass du Programmierst?

                      Kommentar


                      • #12
                        ... und ihr würdet das dann wie machen?

                        Die grobe Struktur ist folg.:

                        config einlesen und vars getten
                        menü bauen
                        contentfile einlesen
                        ... html ausgeben

                        Mein Problem ist halt, dass ich im Contentfile der jeweiligen Seite php-Anweisungen und html haben möchte. Ein Beispiel:


                        PHP-Code:
                        <?php
                                $header
                        ['title'] .= 'Startseite';
                                
                        $header['meta']['title'] = $menu[$page][$lang];
                        ?>

                        <h1>Willkommen!</h1>

                        Kommentar


                        • #13
                          Warum includest du die Content Datei nicht einfach?
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            na weil dann der seiteninhalt ausgegeben wird, bevor der html-header mit dem title usw. ausgegeben wurde

                            Kommentar


                            • #15
                              Original geschrieben von miguel_rkc
                              na weil dann der seiteninhalt ausgegeben wird, bevor der html-header mit dem title usw. ausgegeben wurde
                              und wo kommt der html-header her? extra datei?

                              Original geschrieben von miguel_rkc
                              PHP-Code:
                              <?php
                                      $header
                              ['title'] .= 'Startseite';
                                      
                              $header['meta']['title'] = $menu[$page][$lang];
                                      
                              // Guter Zeitpunkt, um die header zu includen ;)
                                      
                              include('header.php');
                              ?>

                              <h1>Willkommen!</h1>

                              Kommentar

                              Lädt...
                              X