Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Funktion

Einklappen

Neue Werbung 2019

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

  • Problem mit Funktion

    Hi,

    ich habe einen Beitrag, der bevor er ausgeben wird durch zwei Funktionen laufen muss.
    Einmal die Smilies und einmal die BBCODES.
    Bei den Smilies klappt alles richtig. Er ersetzt die Smilieszeichen durch die Smilies.
    Aber bei den BBCodes passiert gar nichts, und ich weiß nicht warum, könnt ihr mir vielleicht helfen?:

    Functionsaufruf:

    PHP-Code:
    include("function/function/bbcodes.php");
    $beitrag bbcode $beitrag ); 
    Funktion:

    PHP-Code:
    <?php
    function bbcode ($bbcode) {

        
    $muster[] = "/\[b\](.*)\[\/b\]/Ui";
        
    $ersetzen[] = '[b]\1[/b]';

        
    $muster[] = "/\[u\](.*)\[\/u\]/Ui";
        
    $ersetzen[] = '<u>\1</u>';

        
    $muster[] = "/\[i\](.*)\[\/i\]/Ui";
        
    $ersetzen[] = '[i]\1[/i]';

        
    $muster[] = "/\[h1\](.*)\[\/h1\]/Ui";
        
    $ersetzen[] = '<h1>\1</h1>';

        
    $muster[] = "/\[h2\](.*)\[\/h2\]/Ui";
        
    $ersetzen[] = '<h2>\1</h2>';

        
    $muster[] = "/\[h3\](.*)\[\/h3\]/Ui";
        
    $ersetzen[] = '<h3>\1</h3>';

        
    $muster[] = "/\[h4\](.*)\[\/h4\]/Ui";
        
    $ersetzen[] = '<h4>\1</h4>';

        
    $muster[] = "/\[h5\](.*)\[\/h5\]/Ui";
        
    $ersetzen[] = '<h5>\1</h5>';

        
    $muster[] = "/\[h6\](.*)\[\/h6\]/Ui";
        
    $ersetzen[] = '<h6>\1</h6>';

        
    $muster[] = "/\[quote\](.*)\[\/quote\]/Ui";
        
    $ersetzen[] = '<div id="quote">Zitat: <br \>\1</div>';

        
    $muster[] = '/\[url=(.*)\](.*)\[\/url\]/Ui';
        
    $ersetzen[] = '[b][url="\1"]\2[/url][/b]';

        
    $muster[] = "/\[url\](.*)\[\/url\]/Ui";
        
    $ersetzen[] = '[b][url="\1"]\1[/url][/b]';

        
    $muster[] = "/\[img\](.*)\[\/img\]/Ui";
        
    $ersetzen[] = '[img]\1[/img]';

        
    $muster[] = "/\[li\](.*)\[\/li\]/Ui";
        
    $ersetzen[] = '[*]1';

        
    $muster[] = "/\[ul\](.*)\[\/ul\]/Ui";
        
    $ersetzen[] = '<ul>1[/list]';

        
    $muster[] = "/\[php\](.*?)\[\/php\]/Ui";
        
    $ersetzen[] = '<blockquote><div class="pre">PHP-Code:
    \1<hr noshade></div></blockquote>'
    ;

        
    $muster[] = "/\[code\](.*)\[\/code\]/Ui";
        
    $ersetzen[] = '<blockquote><div class="pre">Code:
    \1<hr noshade></div></blockquote>'
    ;

        
    $muster[] = "/\[pre\](.*)\[\/pre\]/Ui";
        
    $ersetzen[] = '<div class="pre">\1</div>';

        
    $bbcode eregi_replace ("http://www.""www."$bbcode);
        
    $bbcode eregi_replace ("www.""http://www."$bbcode);
        
    $bbcode preg_replace ($muster$ersetzen$bbcode);
        
    $bbcode preg_replace ("#(^|[^\"=]{1})(http://|ftp://|mailto:|https://)([^\s<>]+)([\s\n<>]|$)#sm","\\1<a target=\"_blank\" href=\"\\2\\3\">\\3</a>\\4",$bbcode);
        
    $bbcode nl2br ($bbcode);
        
      return 
    $bbcode// das ganze zurückgeben
    }

    ?>

  • #2
    Was hast du unternommen um den Fehler selbst zu finden?

    Kommentar


    • #3
      Ich habe den Variablen andere Namen gegeben.
      Ich habe die Funktion extrahiert und in einem anderen Script ausgeführt.

      Aber irgendwie hat es alles nicht richtig geklappt...

      Kommentar


      • #4
        Zitat von malte
        Ich habe den Variablen andere Namen gegeben.
        Ich habe die Funktion extrahiert und in einem anderen Script ausgeführt.
        Und warum gibst du dir die Werte die die Variablen (speziell $bbcode) annehmen nicht aus, nachdem eine preg_replace() Funktion darüber gelaufen ist?

        Kommentar


        • #5
          Warum nimmst du nicht die bbcode class die ich dir vor geraumer Zeit schon mal gepostet habe?
          http://www.christian-seiler.de/projekte/php/bbcode/
          schlimmer gehts nimmer.... dümmer immer!
          [url=http://www.in-dvd.net][img]http://in-dvd.net/images/go_indvd.gif[/img][/url]

          Kommentar


          • #6
            Weil ich den anderen mit einem Freund programmiert habe.
            Und es klappt ja auch auf einer anderen Seite.

            So ich habe jetzt ein weiteres Probelm.
            Ich bekomem folgende Meldung:

            Fatal error: Cannot redeclare smilies() (previously declared in D:\Webdesign\xampp\htdocs\forum\function\function\ smilies.php:2) in D:\Webdesign\xampp\htdocs\forum\function\function\ smilies.php on line 35

            Wenn ich diesen Teil des Codes mti in die For Schleife einbaue:

            PHP-Code:
            <?php
                            
            include("function/function/smilies.php");
                            
            $new_entry[$i] = smilies $beitrag[$i] );

                            include(
            "function/function/bbcodes.php");
                           
            $beitrag[$i] = bbcode $new_entry[$i] );
            ?>
            Aber ich weiß nicht warum?

            Kommentar


            • #7
              Warum muss das include in die for-Schleife?
              Wenns unbedingt sein muss, was ich nicht glaube, benutz include_once:
              http://de2.php.net/include_once

              Kommentar


              • #8
                Habe es jetzt so gemacht:

                PHP-Code:
                <?php
                include_once("function/function/bbcodes.php");
                $beitrag[$i] = bbcode $beitrag[$i] );

                include_once(
                "function/function/smilies.php");
                $beitrag[$i] = smilies $beitrag[$i] );
                ?>
                Ich bekomme jetzt keine Fehlermeldung. Aber er wird auch noch immer nicht verändert.
                Hier kannst du es dir mal ansehen:
                http://newwarrior.milten.lima-city.d...=1&thread_id=1

                Kommentar


                • #9
                  könnte echt eure hilfe gebrauchen

                  Kommentar


                  • #10
                    Ich habe dir schonmal gesagt, lass dir die Variable $bbcode innerhalb deiner bbcode()-Funktion jedes mal ausgeben, wenn du eine Funktionn (preg_replace) auf sie aufgerufen hast.

                    Kommentar


                    • #11
                      Ich habe jetzt folgendes gemacht:

                      PHP-Code:
                      <?php
                          $bbcode 
                      eregi_replace ("http://www.""www."$bbcode);
                          
                      $bbcode eregi_replace ("www.""http://www."$bbcode);
                          
                          echo 
                      $bbcode;
                          
                          
                      $bbcode preg_replace ($muster$ersetzen$bbcode);
                          
                              echo 
                      $bbcode;
                          
                      $bbcode preg_replace ("#(^|[^\"=]{1})(http://|ftp://|mailto:|https://)([^\s<>]+)([\s\n<>]|$)#sm","\\1<a target=\"_blank\" href=\"\\2\\3\">\\3</a>\\4",$bbcode);
                          
                              echo 
                      $bbcode;
                      ?>
                      Und das ist die Ausgabe:
                      Hi, [ b] ich habe ein kleines Problem mit meinem Forum, vielleicht kann mir ja einer von euch helfen? Danke [ /b] :love:

                      Hi, [ b] ich habe ein kleines Problem mit meinem Forum, vielleicht kann mir ja einer von euch helfen? Danke [ /b] :love:

                      Hi, [ b] ich habe ein kleines Problem mit meinem Forum, vielleicht kann mir ja einer von euch helfen? Danke [ /b] :love:

                      Hi Malte, vielleicht könntest du dein Problem ein bisschen besser beschreiben? Dann könnten wir dir auch helfen. Danke

                      Hi Malte, vielleicht könntest du dein Problem ein bisschen besser beschreiben? Dann könnten wir dir auch helfen. Danke

                      Hi Malte, vielleicht könntest du dein Problem ein bisschen besser beschreiben? Dann könnten wir dir auch helfen. Danke

                      Hi, klar, wie du vielleicht sehen kannst, wird bei mir nicht der Text mit dem BBCode nicht richtig verarbeitet. Und ich weiß einfach nicht warum? :smoke:

                      Hi, klar, wie du vielleicht sehen kannst, wird bei mir nicht der Text mit dem BBCode nicht richtig verarbeitet. Und ich weiß einfach nicht warum? :smoke:

                      Hi, klar, wie du vielleicht sehen kannst, wird bei mir nicht der Text mit dem BBCode nicht richtig verarbeitet. Und ich weiß einfach nicht warum? :smoke:

                      Kommentar


                      • #12
                        Kannst du mir jetzt helfen?
                        Wäre echt nett

                        Kommentar


                        • #13
                          Deine Funktion aus Seite 1 funktioniert doch einwandfrei:

                          print bbcode("das ist
                          PHP-Code:
                          normaler 
                          code");

                          Kommentar


                          • #14
                            Aber es klappt ja nicht.

                            ich rufe sie so auf die Funktion:

                            PHP-Code:
                            <?php
                             
                            include_once("function/function/bbcodes.php");
                             
                            $beitrag[$i] = bbcode $beitrag[$i] );
                            ?>
                            Was muss ich ändern, damit sie richtig angeziegt wird, so wie wenn ich es mache wie du es eben geschrieben hast?
                            Danke

                            Kommentar

                            Lädt...
                            X