Ankündigung

Einklappen
Keine Ankündigung bisher.

Textbearbeitung

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

  • Textbearbeitung

    Die User können bei einem Formular eine "Neuigkeit" oder sowas eingeben, was dann später angezeigt wird. Bevor ihr Text gespeichert wird, möchte ich den folgendendermaßen bearbeiten:

    Aus "[BILD=2]" z.b. soll werden "[img]pictures/2.jpg[/img]", das heißt, das Bild mit der entsprechden ID soll an der Stelle angezeigt werden, so dass die User keinen HTML Code nehmen müssen sondern diese Art Code.

    Das Problem ist eben, dass die 2 natürlich variabel sein soll, das gleiche also auch mit "[BILD=3]" gehen soll. Wie mache ich das?


  • #2
    Für so etwas gibt es regular expressions und entsprechende Funktionen, siehe PHP-Manual.

    Die Frage ist nun: Willst du verstehen, wie die funktionieren, um auch andere dieser Tags später noch selber machen zu können oder willst du einfach jetzt sofort das konkrete Beispiel machen.

    Bei Variante 1 empfehle ich dir eine Woche Geduld und intensives Selbststudium...
    www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
    Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

    Kommentar


    • #3
      Hmm, wie wärs mit Variante zwei ...

      Kommentar


      • #4
        eine primitive lösung ... ^^
        Code:
        <?php
        
            $foo = '[BILD=1]';
            $bar = substr( $foo, 6, 2 );
            
            if( is_numeric($bar) )
            {
                echo 'pictures/' . $bar . '.jpg';
            }
            else
            {
                echo 'pictures/' . $bar{0} . '.jpg';
            }
            
        
        ?>
        erlaubt zweistellige zahlen.
        naja.
        privater Blog

        Kommentar


        • #5
          Also, ich hab mich mal durch die regular expressions durchgewühlt. Ich benutze die Funktion preg_match.
          PHP-Code:
             preg_match("/\[IMAGE=.+\]/"$text$matches); 
          Das Problem ist nur, dass wenn ich folgenden Text habe:
          PHP-Code:
          $text "Test der Funktion [IMAGE=1] blabla [IMAGE=2]"
          ist das result "[IMAGE=1] blabla [IMAGE=2]".
          Momentan lasse ich als Result jeden String zu, der mit "[IMAGE=" anfängt, mit "]" aufhört und dazwischen beliebig viele Strings hat.

          Ich brauche irgendeine Möglichkeit, zu sagen, dass dazwischen nur Zahlen sein dürfen. Und das kannich absolut nicht finden. Wie mache ich das?

          Kommentar


          • #6
            wenn du ersetzen willst, nimm preg_replace ...

            \d steht für alle ziffern

            und weils grad so feierlich ist:
            http://pcre.nophia.de/evaluate/b8308...dex.php#output

            den php-code kriegst du hoffentlich selbst zusammen.

            Kommentar


            • #7
              Yeeehaaa... mann bist du afu Zack

              Kommentar

              Lädt...
              X