Ereg macht Probleme

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

  • Ereg macht Probleme

    Also. Ich will aus einer HTML Datei Platzhalter auslesen.
    Die werden {!name} geschrieben.

    Nnu habe ich dazu ein ereg benutzt:

    PHP-Code:
    ereg("\\{!(.*)\\}",$show,$reg
    Wenn es nur einen platzhalter gibt, funktioniert das auch, aber wenn es mehrere sind, findet er dummer Weise sowas:

    Original:

    das ist ein test: {!test1} {!test2}


    und wenn ich mir dann per foreach $reg ausgeben lasse, kommt dies:

    !test1} {!test2

    Also ignoriert er die beiden inneren Klammern. Er nimmt nur die äußeren. Jetzt ist meine Frage: Wie kann ich es machen, dass er immer wirklich ein zusamengehöriges Paar bearbeitet? Mit einer festen Anzahl von Zeichen geht es auch nicht, weil die Platzhalternamen immer unterschiedlich lang sind.

  • #2
    Du musst dafür sorgen, dass innerhalb der geschweiften Klammern keine weiteren geschweiften Klammern vorkommen dürfen. [^{}]

    versuch es mal so

    PHP-Code:
    /({![^{}]*})/ 

    hemfrie

    Kommentar


    • #3
      PHP-Code:
      ereg("\\{!([^{}]*)\\}",$show,$reg
      da wird nur der erste platzhalter ausgegeben. Die anderen werden ignoriert

      Kommentar


      • #4
        mach mal

        PHP-Code:
        preg_match_all('/({![^{}]*})/'$show$reg); 
        Damit werden alle ausgegeben.


        hemfrie

        Kommentar


        • #5
          thx jetzt funktionierts
          Zuletzt geändert von ; 05.09.2004, 17:24.

          Kommentar

          Lädt...
          X