tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
368
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Hallo ich habe ein für mich unverständliches Problem.

    Bisher habe ich folgendes genutzt:
    PHP-Code:
    <?php

     $search 
    = array("[b]","[/b]","[i]","[/i]","[u]","[/u]","[img]","[/img]",
                     
    "[0]","[1]","[2]","[3]","[4]","[5]","[6]","[7]","[8]","[9]",
                     
    "[10]","[11]","[12]","[13]","[14]","[15]","[16]","[17]","[18]",
                     
    "[19]","[20]","[userq]","[/userq]","[quote]","[/quote]","[url=","[/url]","]",
                     );
     
    $replace = array("<b>","</b>","<i>","</i>","<u>","</u>","<img src=\"","\" border=\"0\" alt=\"newsbild\" />",
                      
    "<img src=\"img/icons/icon_smile.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_mrgreen.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_cool.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_neutral.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_surprised.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_wink.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_biggrin.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_mad.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_sad.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_confused.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_evil.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_lol.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_eek.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_rolleyes.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_razz.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_redface.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_twisted.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_question.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_arrow.gif\" alt=\"smiley\" />","<img src=\"img/icons/icon_exclaim.gif\" alt=\"smiley\" />",
                      
    "<img src=\"img/icons/icon_idea.gif\" alt=\"smiley\" />","<span class=\"nick\">","</span>",
                      
    "<div class=\"quote\">","</div>","<a href=\"","</a>","\" target=\"_blank\">",
                      )
    ?>
    Dann mittels str_replace() in die News eingebunden.
    Doch nun habe ich mich überwunden und liebe Reguläre Ausdrücke Daher mein neuer Versuch, anschließend wollte ich es auf Performance testen bzw. wissen was schneller ist.
    PHP-Code:
    <?php

    // Suchmuster festlegen
    $search = array(
    '!\[b\](.*)\[\/b\]!isU',
    '!\[i\](.*)\[\/i\]!isU',
    '!\[u\](.*)\[\/u\]!isU',
    '!\[img\](.*)\[\/img\]!isU',
    '!\[url=(.*)\](.*)\[\/url\]!isU',
    '!\[userq\](.*)\[\/userq\]!isU',
    '!\[quote\](.*)\[\/quote\]!isU',
    '!\[(\d)\]!sU'
    );

    // Ersetzmuster festlegen
    $replace = array(
    '<b>$1</b>',
    '<i>$1</i>',
    '<u>$1</u>',
    '<img src="$1" border="0" alt="newsbild" />',
    '<a href"$1" target="_blank">$2</a>',
    '<span class="nick">$1</span>',
    '<div class="quote">$1</div>',
    '<img src="img/icons/smile_$1.gif" alt="smiley" />'
    );

    function 
    bbcode($text)
    {
      
    $neuertext stripslashes($text);
      
    $neuertext preg_replace($search,$replace,$neuertext);
      
    $neuertext nl2br($neuertext);
      return 
    $neuertext;
    }
    ?>
    Doch leider erhalte ich folgendes: Warning: preg_replace() [function.preg-replace]: Empty regular expression in D:\xampplite\htdocs\HP\Doorstander\inc\bb_code2.php on line 30
    Ich habe rausgefunden, dass es einzeln geht aber mit arrays nicht wobei im Manual steht das es auch gehen soll. Wozu zich mal hinschreiben wenns auch so gehen sollte ?
    In den News binde ich es wie folgt ein:
    PHP-Code:
    include "inc/bb_code2.php";
    while(
    $row mysql_fetch_object($erg))
    {
      
    $news bbcode($row->news);

    PS. Die Smiley-Bilddatein habe ich schon entsprechend geändert (smile_n.gif), nicht das Ihr euch wundert.

    Vielen Dank im Vorraus.
    Geändert von Online-Skater (20.09.06 um 17:17 Uhr)
     

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Weil die Funktion anscheinend die Variablen $search und $replace nicht verwenden kann.
    Wenn du diese der Funktion mitübergibst bzw. in ihr deklarierst, funktioniert alles.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    *Mir an den Kopf fass*
    An sowas simples habe ich natürlich nicht gedacht

    Vielen Dank

    Weiß vllt. noch einer aus Erfahrung ob die letzte Variante performanter ist, oder nimmt sich das nicht viel ?
    Geändert von Online-Skater (20.09.06 um 18:13 Uhr)
     

  4. #4
    Registriert seit
    Mar 2005
    Ort
    Bühl/Baden
    Beiträge
    2.330
    Du musst sie der Function nicht mal mit übergeben. Deklariere sie einfach als 'global'
    PHP-Code:

    function bbcode($text)
    {
       global 
    $search$replace;
       
    #...

     
    Gruß fanste

    Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )

    Problem gelöst? Dann markiere das Thema bitte als erledigt!
    Beachte bitte die Netiquette. Insbesondere Punkt 15.

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 25.06.10, 12:07
  2. Antworten: 1
    Letzter Beitrag: 21.01.08, 16:58
  3. BBCode (RegEx) Frage
    Von Warper im Forum PHP
    Antworten: 8
    Letzter Beitrag: 18.01.07, 07:31
  4. RegEx URL für BBCode
    Von elmyth im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.01.05, 16:36
  5. Parsing: RegEx mit '&', RegEx-Kenner gefragt
    Von Kachelator im Forum PHP
    Antworten: 8
    Letzter Beitrag: 21.04.04, 09:16