Tom1tk: String kürzen um bestimmte Teile

Hallo zusammen,

ich bin immer noch an meinem Problem von gestern, jetzt aber etwas anderes:

Ich habe folgenden String und möchte, sofern &PHPSESSID=... drinsteht eben diesen löschen.

/service/?site=service&PHPSESSID=57549004b8d910e19d0f9a9417e82df6

Problem: Dieser String könnte auch so aussehen:
/service/?site=service oder nur /service

Das Ergebnis sollte aber immer OHNE der SID sein.

Möglich? Wenn ja, welche Funktionen würden mir helfen?

Danke Tom1tk

  1. Hallo Tom1tk,

    Ich habe folgenden String und möchte, sofern &PHPSESSID=... drinsteht eben diesen löschen.

    versuchs mal mit:

    $str = preg_replace("/[?]?[&]?(PHPSESSID=)[0-9a-f]*/",'',$str)

    das funktioniert auf jeden Fall, besser ist vielleicht:

    $str = preg_replace("/(?|&)PHPSESSID=[0-9a-f]*/",'',$str)

    (allerdings ungetestet)

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Tobias,

      geht das auch, dass ich bestimmte Teile einfach "abziehe"?

      Die Var SID (PHPSESSID=57549004b8d910e19d0f9a9417e82df6) steht mir zur Verfügung:

      Kann man dann nicht irgend so was in der Art basteln:

      $string=$string-$SID; //Mal mathematisch gesprochen??

      Klar dass das so nicht funktioniert, aber prinzipiell?

      Greets

      1. hi,

        geht das auch, dass ich bestimmte Teile einfach "abziehe"?

        Die Var SID (PHPSESSID=57549004b8d910e19d0f9a9417e82df6) steht mir zur Verfügung:

        Kann man dann nicht irgend so was in der Art basteln:

        $string=$string-$SID; //Mal mathematisch gesprochen??

        Klar dass das so nicht funktioniert, aber prinzipiell?

        du kannst mit den strpos-funktionen herausfinden, wo in deinem string die zeichenkette PHPSESSID anfängt, und wo meinetwegen 57549004b8d910e19d0f9a9417e82df6 wieder aufhört.

        und dann könntest du von deinem originalstring nur den teil vom ersten zeichen bis zum zeichen davor, und den teil vom zeichen danach bis zum letzten nehmen.

        aber wozu der aufwand, RegEx sind hier wirklich angebrachter.

        gruss,
        wahsaga

        1. Ha wahsaga,

          und dann könntest du von deinem originalstring nur den teil vom ersten zeichen bis zum zeichen davor, und den teil vom zeichen danach bis zum letzten nehmen.

          Brauchts net, da PHPSESSID=kldsfgkdf der letzte Teil dieses String ist.

          aber wozu der aufwand,

          Ich bau grad einen Login-Bereich, bei dem sich jeder Seine Startseite nach dem LoginVorgang selbst festlegen kann.

          Ist das mit den Reg Exp sicher, also funzt das immer?

          Greets Tom1tk

      2. Hello,

        geht das auch, dass ich bestimmte Teile einfach "abziehe"?

        Die Var SID (PHPSESSID=57549004b8d910e19d0f9a9417e82df6) steht mir zur Verfügung:

        Kann man dann nicht irgend so was in der Art basteln:

        $string=$string-$SID; //Mal mathematisch gesprochen??

        Nee aber sowas wie

        $string = str_replace($sid,"",$string);

        http://de3.php.net/manual/de/function.str-replace.php

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    2. Hallo,

      $str = preg_replace("/[?]?[&]?(PHPSESSID=)[0-9a-f]*/",'',$str)

      das funktioniert auf jeden Fall, besser ist vielleicht:

      Ja. Sehr gut sogar. Danke.

      $str = preg_replace("/(?|&)PHPSESSID=[0-9a-f]*/",'',$str)

      Nein. Gibt "" aus.

      (allerdings ungetestet)

      Danke und grüße nach Nürnberg,

      Tom1tk