Hafenmeister: Formatierung ähnlich wie WIki

Hallo,
ich ertelle ein großes Onlineportal für Studentengruppen.
Jetzt möchte ich jedem die Möglichkeit geben eine eigene Startseite zu setzen. Die Formatierungen sollen ähnlich wie im Wiki sein.

Wie schaffe ich es jetzt zum Beispiel eine ÜBerschrift
==ich bin eine ÜBerschrift==

in ein html-Tag zu packen
<h2>ich bin eine Überschrift</h2>

?? Irgendwas mit regulären Ausdrücken? oder reichen die str_replace, str_pos Funktionen und irgendwelche genialen Schachzüge Eurerseits.

Oder gibts gar schon fertige php-Funktionen für die WIKI-Formatierung?

Grüße
Hafenmeister

  1. Hi,

    ich ertelle ein großes Onlineportal für Studentengruppen.
    Jetzt möchte ich jedem die Möglichkeit geben eine eigene Startseite zu setzen. Die Formatierungen sollen ähnlich wie im Wiki sein.

    Wirklich? Ich würde vermuten, dass BBCode sich weitaus grösserer Bekanntschaft erfreut.

    ?? Irgendwas mit regulären Ausdrücken? oder reichen die str_replace, str_pos Funktionen

    Nein.
    Du brauchst schon einen Parser, wenn das vernünftig umgesetzt sein soll, so dass auch sinnvolles und fehlerfreies HTML dabei herauskommt.

    und irgendwelche genialen Schachzüge Eurerseits.

    Christian Seilers BBCode-Parserklasse für PHP

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Du brauchst schon einen Parser, wenn das vernünftig umgesetzt sein soll, so dass auch sinnvolles und fehlerfreies HTML dabei herauskommt.

      Wobei wir wieder dabei wären: warum HTML5 eine schlechte Idee ist und es viel coolere wäre, wenn man bei den SGML-Wurzeln bliebe - somit wäre z.B. sowas in der DTD denkbar:

      <!ENTITY h2-open  "<h2>">  
      <!ENTITY h2-close "</h2>">  
      <!SHORTREF h2qm1 "==" h2-open>  
      <!SHORTREF h2qm2 "==" h2-close>  
      <!USEMAP   h2qm1 body>  
      <!USEMAP   h2qm2 h2>
      

      Damit würde folgendes Konstrukt

      <body>  
        ==foo==  
      </body>
      

      gleichbedeutend zu diesem sein

      <body>  
        <h2>foo</h2>  
      </body>
      
      1. Hihi, ich habe Dein komplettes Posting _nicht_ verstanden.
        Toll, suit.

        Ich hoffe Du wolltest nicht speziell mir was wichtiges erklären oder so.

        Also ich habe jetzt mal diese Funktion geschrieben und sie erfüllt mein Zweck.

          
        function dewiki_h($tx){  
          
          while(is_int(strpos($tx,"="))){  
          
            $tx = substr_replace($tx,"<h6>",strpos($tx,"="),1);  
            $tx = substr_replace($tx,"</h6>",strpos($tx,"="),1);  
          
          }  
          
          return $tx;  
          
        }  
        
        

        Natürlich nicht, wenn der User die = falsch anwendet, aber das merkt er dann ja schon.

        1. Moin,

          Also ich habe jetzt mal diese Funktion geschrieben und sie erfüllt mein Zweck.

          … bis der erste Student ankommt und eine Formel schreibt ;-) Vielleicht merkst du jetzt, warum ein Parser doch sinnvoller ist.

          Viele Grüße,
          Robert

          1. … bis der erste Student ankommt und eine Formel schreibt ;-) Vielleicht merkst du jetzt, warum ein Parser doch sinnvoller ist.

            In der Tat solltest du strengere Regeln verwenden, z.B. dass es wenigstens zwei Gleichheitszeichen sein sollten, die treten ja seltener in Fließtexten oder Formeln auf... bis jemand Programmcode posten will, dann kann er auch mal drei benötigen.
            Und/oder du überprüfst dass das Gleichheitszeichen am Anfang und am Ende der Zeile steht.

            --
            sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
            1. Urrhggh 8(

              Ihr Habt Recht...

              Mal sehen wie ich es mache. Leider kann ich es ja hier nicht mehr reinschreiben, weil immer gleich alles archiviert wird...

              Bis dann

              1. Moin,

                Leider kann ich es ja hier nicht mehr reinschreiben, weil immer gleich alles archiviert wird...

                Was heißt denn gleich? Ein paar Tage ist diese Diskussion auf jeden Fall noch aktiv.

                Viele Grüße,
                Robert

        2. Hihi, ich habe Dein komplettes Posting _nicht_ verstanden.

          Macht nichts, es war ein Gedankenspiel, welches in der Praxis leider nicht funktioniert, weil sämtliche Browser mit SGML nicht wirklich umgehen können.

          Ich hoffe Du wolltest nicht speziell mir was wichtiges erklären oder so.

          Nein.