preg_replace Problem

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

  • preg_replace Problem

    Hallo

    Ich bin ein totaler Neuling in dieser Angelegenheit. Da ich ein grosses Problem habe, hab mir gedacht ich probiere mal selbst durch experimente mein Problem zu lösen. Da schon einige Wochen vergangen sind und ich lediglich ein bischen vorwärts gekommen bin und letztlich stehengeblieben, wende ich mich an Euch mit grosse Bitte um HILFE.

    Ich möchte gerne dass in meinem Forum wen ich ein Post setze und ein Link angebe, dieser umgeändert wird auf ein klickbarer link mit bestimmten Namen der zwischen |file|[COLOR=red]und[/COLOR] |Test007| als reiner Link angezeigt wird. klf://|file|Test007|0000001|0000002|/

    Ich habe bei mir diesen Ding
    $txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );

    umgeändert auf dieses hier

    $txt = preg_replace( "#(^|\s)((klf)://[|]\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );

    und wen ich meine links angebe, werden diese schon umgeändert zum

    klf://|file|Test007|0000001|0000002|/

    und wird das ganze klf://|file|Test007|0000001|0000002|/] angezeigt als klickbarer link. Ist schon in Ordnung so, aber es zeigt zu viel, genau gesagt alles. Ich möchte das NUR ein Teil davon angezeigt wird, also konkret dieses [COLOR=blue]Test007[/COLOR] als sichtbares und klickbares Link angezeigt wird.

    Falls mich jemand verstanden hatt BITTE um Hilfe, was soll ich hier umändern ?
    $txt = preg_replace( "#(^|\s)((klf)://[|]\w+[^\s\[\]]+)#ie" , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );


    Vielen Dank voraus
    Bohlen

  • #2
    wenn ich dich richtig verstanden habe willst du aus klf://|file|Test007|0000001|0000002|/ diese machen: Test007.
    ich bin leider nicht so der regexp meister und verstehe deine nicht mehr. aber ich würde ersten nun einen zweiten regexp entwerfen und nicht am alten weiter rumarbeiten.

    aber meine idee zur lösung, wie wär es du trennst ersteinmal den string auf durch
    PHP-Code:
    $array explode ('|','klf://|file|Test007|0000001|0000002|/'); 
    und überprüfst dann die einzelnen array elemente.

    Kommentar


    • #3
      aber ich würde ersten nun einen zweiten regexp entwerfen und nicht am alten weiter rumarbeiten.

      OK, aber wie mache ich das, ich habe wirklich keine Ahnung wie das geht.
      Ich möchte das der link automatisch geparset wird.

      grüße
      bohlen

      Kommentar


      • #4
        ich kappier den sinn nicht.

        warum soll denn klf:// gehen wenns ne url sein soll?
        Könntest du das mit vernünftigen links, trennzeichen und ohne jegliche rex ex nochmal schreiben?

        Bsi dahin: Das ist die reg ex zum suchen von gültigen urls (selber grade gemacht)
        Code:
        /^(http(|s)|news|ftp)://([url]www.\w+[/url]|\w+).[a-z]{2,3}$/i
        allergins muss man hier mit http:// anfangrn
        SQL Injection kitteh is...

        Kommentar


        • #5
          wenn das zeug immer gleich aufgebaut ist:
          PHP-Code:
          $alles='klf://|file|Test007|0000001|0000002|/';
          $teile explode ('|',$alles);
          echo 
          '<a href="'.$alles.'">'.$teile[2].'</a>'
          Tardan hat das doch schon fast fertig hingeschrieben

          emule?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Der link passt doch nichtmal selber in sein reg ex schemata, oder warum jagt er auf einmal klf:// ?
            SQL Injection kitteh is...

            Kommentar


            • #7
              Hallo

              Bin gerade aus dem Urlaub gekommen, sorry für meine Schreibpause.

              klf habe ich extra geschrieben, es geht um ed2k und nicht um klf genau - emule. Entschuldige für meine Tarnung und Irreführung

              Wen ich emule erwähne, wird mir automatisch nicht mehr geholfen, gleich bin ich als Verbrecher behandelt , nicht hier im Forum aber in den meisten.
              Gleich werde ich Eure Hilfe ausprobieren ob es geht, Danke !

              Kommentar


              • #8
                Ich habe mir gedacht, wen Mann ehrlich ist, ist selber Schuld. Wird mir jemand helfen ?

                Kommentar


                • #9
                  Es stehen da so viele ansätze, warum nutze du die nicht?
                  SQL Injection kitteh is...

                  Kommentar

                  Lädt...
                  X