[Funktion] String nach string durchsuchen

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

  • [Funktion] String nach string durchsuchen

    eigentlich ganz simpel, ich weiß nur nicht wie...

    ich habe einen string $text. Dies ist ein Beitrag in einem Forum. $text durchläuft die ganzen str_replace dinger für den bb-code etc. Ich hätte gerne eine modifikation:

    Wenn in $text die url zum forum (in varible $pfad vorhanden) vorkommt und dann gefolgt von thread.php?id=14 (14 als beispiel)
    also so:
    $pfad./thread.php&id=12&weitere-variablen

    Ich bräuchte irgendwie sowas wie ein flag, ob diese url vorkommt und die thread-id die immer hinter .php? kommt, in einer variablen.

    Für was ich das brauche: Ich möchte interne Links nicht als Links darstellen sondern mit dem Thread-Titel, den ich mir mit der thread-id auslesen kann.

    Ich denke das ist eine mischung aus regulären ausdrücken und ner funktion?!

    Ich hoffe mir kann jmd. helfen.

    Thx Lakeside.

  • #2
    strstr()
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      preg_replace_callback

      suchst nach deinem link auf ein foren-topic, als ersatz deine function, die den ersatz zurückgibt, ...

      btw: falls die function in einer klasse steht, mußt du als ersatz nen array angeben, sollte im manual stehn
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        danke schonmal.

        mein Problem ist es (nun) den Suchbegriff festzulegen.
        Ich sollte nach der strstr()-funktion die ID isoliert haben, als zahl quasi.

        Kannst du oder jmd. mir noch mit dem regulären ausdruck helfen, oder was auch immer man braucht, damit ich die id danach habe.

        quasi $id=strstr($text,XXXX); So wird es nicht gehen, oder? man muss ja das ende noch abschneiden.

        Zur charakteriesirung: die id kommt immer nach dem ersten "?id=" im string vor.

        Vielen Dank.

        Kommentar


        • #5
          Hi,

          PHP-Code:
          $str 'thread.php&id=12&weitere-variablen';
          preg_match('~.*?id=([\d]+)~',$str,$ary);
          echo 
          $ary[1]; 
          Grüsse,
          Sebastian


          Profil Flex Freelancer
          Twitter twitter.com/flashhilfe
          Web Flash und Flex Community

          Kommentar


          • #6
            hmm,

            mit preg_replace_callback brauchste wie gesagt nur eine PCRE ... [/drängelschubs]
            EDIT:
            für den gesamten vorgang ...
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Original geschrieben von Sebastian W


              PHP-Code:
              $str 'thread.php?id=12&weitere-variablen';
              preg_match('~.*?id=([\d]+)~',$str,$ary);
              echo 
              $ary[1]; 
              Damit kann ich von meinem verständnis her am meisten anfangen ;-) Ich habe nur noch ein Problem: Der reguläre Ausdruck kann irgendwie nicht stimmen, da $ary[1] leer ist. Ich habe in meinem PHP-Buch auch keine Symbole bei den regulären Ausdrücken gefunden, wie ~ oder das d in der eckigen klammer. Oder liegt der Fehler woanders. Muss vor den Punkt und vor das Fragezeichen nicht ein Backslash? soll ja für .php? stehen.

              Kommentar


              • #8
                @ lakeside
                Ja, das Highlight Script hat ein \ verschluckt. Das muß vor das d, also \d
                Grüsse,
                Sebastian


                Profil Flex Freelancer
                Twitter twitter.com/flashhilfe
                Web Flash und Flex Community

                Kommentar


                • #9
                  Jetzt funktioniert es super!

                  Vielen Dank.

                  Gruß Lakeside

                  Kommentar

                  Lädt...
                  X