format url und regexp

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

  • format url und regexp

    Hey ho,

    eben hab ich mein BB-Code n bissle umgeschrieben und schwups, ende im Gelände. Bekomme seit dem ne Nette Message die folgendes von mir will:


    Parse error: parse error in
    /home/m/mtk-party.de/public_html/2005/w4lms/bbcode.inc.php(62)
    : regexp code on line 1

    Fatal error: Failed evaluating code: klick for fun in
    /home/m/mtk-party.de/public_html/2005/w4lms/bbcode.inc.php on
    line 62


    Der code in Zeile 62 Lautet:

    PHP-Code:
    $out preg_replace($searcharray$replacearray$out); 
    die Search & Relacearrays:

    [PHP]
    $searcharray[]="/\[flag=(['\"]?)([^\"']*)\\1]/esiU";
    $replacearray[]="" . $this->formatflag('\\2') . "";
    $searcharray[]="/\[icon=(['\"]?)([^\"']*)\\1]/esiU";
    $replacearray[]="" . $this->formaticon('\\2') . "";
    $searcharray[]="/\[list=(['\"]?)([^\"']*)\\1](.*)\[\/list((=\\1[^\"']*\\1])|(\]))/esiU";
    $replacearray[]="" . $this->formatlist('\\3', '\\2') . "";
    $searcharray[]="/\[list](.*)\[\/list\]/esiU";
    $replacearray[]="" .$this->formatlist('\\1') . "";
    $searcharray[]="/\[url=(['\"]?)([^\"']*)\\1](.*)\[\/url\]/esiU";
    $replacearray[]="" .$this->formaturl('\\2','\\3') . "";
    #$searcharray[]="/\[toggle=(['\"]?)([^\"']*)\\1](.*)\[\/toggle\]/esiU";
    #$replacearray[]="" .$this->maketoggle('\\2','\\3') . "";
    $searcharray[]="/\[url]([^\"]*)\[\/url\]/esiU";
    $replacearray[]="" .$this->formaturl('\\1') . "";
    #$searcharray[]="/\[code](.*)\[\/code\]/esiU";
    #$replacearray[]="" .$this->formatcodetag('\\1') . "";
    $searcharray[]="/\
    PHP-Code:
    (.*)\[\/php\]/esiU";    
    $replacearray[]="" .$this->phphighlite('\\1') . ""; 
    $searcharray[]="/\[img]([^\"]*)\[\/img\]/siU";    
    $replacearray[]="<img src=\"\\1\" border=\"0\" alt=\"Image\" />"
    $searcharray[]="/\[email]([^\"]*)\[\/email\]/siU";    
    $replacearray[]="<a href=\"mailto:\\1\" class=\"toplink\">\\1</a>";   
    $searcharray[]="/\[email=(['\"]?)([^\"']*)\\1](.*)\[\/email\]/siU";
    $replacearray[]="<a href='mailto:\\2\' class=\"toplink\">\\3</a>"
    Funktion formaturl:

    PHP-Code:
    function formaturl($url$title=""$maxwidth=60$width1=40$width2=-15) {
        if(!
    trim($title)) $title=$url;
        if(!
    preg_match("/[a-z]:\/\//si"$url)) $url "http://$url";
        if(
    strlen($title)>$maxwidth && !stristr($title,"[img]"))
        
    $title substr($title,0,$width1)."...".substr($title,$width2);
            return 
    '<a href="'.$url.'" target="_blank">
                '
    .str_replace("\\\"""\""$title).'
                </a>'
    ;

    Ich frage mich warum das nicht funktioniert.
    Zuletzt geändert von Skaschy; 02.05.2005, 14:50.

  • #2
    Erst lesen: Posten von Problemen
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Original geschrieben von wahsaga
      Erst lesen: Posten von Problemen
      Hehe, ach wirklich? Soweit war auch schon.

      Okay error Message mit error_reporting(E_ALL);

      Notice: Undefined index: show in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 17

      Notice: Undefined index: title in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 30

      Notice: Undefined index: title in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 40

      Notice: Undefined index: message in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 41

      Notice: Undefined index: username in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 42

      Notice: Undefined index: start in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 47

      Notice: Undefined variable: template in
      /home/m/mtk-party.de/public_html/2005/module/guestbook/guestbook.php
      on line 60

      Parse error: parse error in
      /home/m/mtk-party.de/public_html/2005/w4lms/bbcode.inc.php(61)
      : regexp code on line 1

      Fatal error: Failed evaluating code: klick for fun in
      /home/m/mtk-party.de/public_html/2005/w4lms/bbcode.inc.php on
      line 61

      Wollte euch den anderen krams ersparen da die $_POST Vars sind....

      PHP-Code:
      if (phpversion()<"4.0.5") {
          
      $out str_replace("'""\'"$out);
      }
      $out preg_replace($searcharray$replacearray$out); /* Zeile 61 */
      $out str_replace("\\'""'"$out);
      return 
      $out
      Zuletzt geändert von Skaschy; 02.05.2005, 14:50.

      Kommentar


      • #4
        Dann

        1. Die Fehlermeldung nicht als CODE formatieren (das erspaart Usern mit normaler Auflösung das Scrollen

        2. Gemeldete Fehler beheben!!!

        Kommentar


        • #5
          Wie bitte schön soll ich $_POST Fehler beheben!?

          PHP-Code:
          $text $_POST["text"]; 
          ?!

          Kommentar


          • #6
            indem du isset und empty anwendest

            Kommentar


            • #7
              So wie alle anderen auch. Mit einem grundlegenden isset() bevor du die Var benutzt!

              Kommentar


              • #8
                Auch wieder wahr, und das regexp Problem ist immer noch da.

                Kommentar


                • #9
                  nimm einen anderen Delimiter

                  Kommentar


                  • #10
                    Original geschrieben von Skaschy
                    Auch wieder wahr, und das regexp Problem ist immer noch da.
                    die scrollbalken auch :-/

                    bitte editieren vor deinem nächsten post - sonst *trash*
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Original geschrieben von asp2php
                      nimm einen anderen Delimiter
                      Delimiter... wie? wo? Also was n Delimiter is weiss ich schon, nur wo anweden, bzw wo ersetzten.

                      Kommentar


                      • #12
                        Original geschrieben von Skaschy
                        Delimiter... wie? wo? Also was n Delimiter is weiss ich schon, nur wo anweden, bzw wo ersetzten.
                        delimiter sind die dinger, mit denen du das suchmuster eingrenzt - in deinem falle also der slash, /{suchmuster}/

                        allerdings sehe ich nicht, was es hier bringen soll, den zu ändern - ich sehe auch keine meldung, die darauf hinweisen würde, dass ihm am delimiter was nicht passt.

                        Fatal error: Failed evaluating code: klick for fun in
                        durch den modifier e wird dafür gesorgt, dass PHP den ersatz-ausdruck als PHP-code auswerten will, analog zu eval().

                        nur ist "klick for fun" nun mal kein code, der sich allzu gut dafür eignet, als PHP-befehl interpretiert zu werden ...

                        brauchst du den modifier e und damit diese funktionalität denn an dieser stelle überhaupt - oder ist der nur ein "überbleibsel" des kopierens von einer anderen stelle ...?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          "klick for fun" ist die Beschreibung von einem Link der Usereingabe, sprich:

                          [URL=http://www.url.de]Klick for Fun [/ URL]

                          EDIT:
                          Hab dem modifier e mal raus genommen, nun funktioniert es.

                          Kommentar

                          Lädt...
                          X