substr() + Restzeichen...

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

  • substr() + Restzeichen...

    Hallo liebe PHP Community,

    wiedereinmal stehe ich vor einem Problem und bitte euch
    mir zu helfen:

    Ich habe einen String, namens "test_text".

    Den letzten Teil des Strings kann ich ja nun durch substr("test_text",4)
    ermitteln, nämlich "text". Gibt es auch eine Möglichkeit, "test", getrennt
    durch den Unterstrich, herauszubekommen ohne zu wissen aus
    wieviel Zeichen das Prefix besteht?

  • #2
    Re: substr() + Restzeichen...

    Geht's dir also nur um alles vor dem Unterstrich?

    Entweder strpos und substr - oder einfach explode.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: substr() + Restzeichen...

      was mir so spontan einfällt

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Danke für die schnelle Hilfe

        Kommentar


        • #5
          So wie ich das verstanden habe ist str_pos und preg_match aber eher
          für die Zeichenfolge nach dem Unterstrich meines Strings.
          Ich benötige es genau anders herum.
          Ich möchte alles vor dem "_".

          Kommentar


          • #6
            Für alle die das Problem einmal bekommen sollten:

            Gelöst habe ich es jetzt hiermit

            $pos = strpos("test_text", "_");

            $firstPart = substr("test_text",0,$pos);

            Kommentar


            • #7
              wenn dein string, aber mehrere "_" hat, dann muss du doch anderes handeln.
              Ich kann mich gut erihnern, als ich der ganze funktionalität von php nicht wuste (jetzt eigentlich auch nicht), dann habe ich kleine string functionen geschrieben, die teilweise preg funktionalitet (der damals ein fremdwort war) abgedekt hat.
              na ja!
              manchmal etwas schreiben ist leichter als etwas finden.
              PHP-Code:
              //NICHT GETESTET
              function finde_letzte_teil($string,$zeichen){
              $temp="";
                for(
              $i=strlen($string)-1;$i>=0;$i--){
                  if(
              $string{$i}==$zeichen)breack;
                  
              $temp.=$string{$i};
                }
              //zeichen nicht gefunden
               
              if(strlen($string)==strlen($temp))return false;
               
              //strrev kenne ich nicht
               
              $temp2="";
               for(
              $i=strlen($temp)-1;$i>=0;$i--){
                   
              $temp2.=$temp{$i};
                }
               return 
              $temp2;

              Zuletzt geändert von Slava; 11.06.2006, 21:51.
              Slava
              bituniverse.com

              Kommentar


              • #8
                Also ich denke explode ist da wohl am einfachsten.

                PHP-Code:
                $erg explode("_","irgendein_string"); 
                $erg[0] = irgendein und $erg[1] = string;

                Selbst bei mehreren _ ist explode wohl einem preg_match (Kanonen und Spatzen) vorzuziehen.
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  Original geschrieben von Slava
                  wenn dein string, aber mehrere "_" hat, dann muss du doch anderes handeln.
                  $pos = strpos("test_text", "_");
                  $firstPart = substr("test_text", 0, $pos);

                  liefert immer "test" bzw. allgemein immer den Substring bis zum ersten _, ganz egal wieviele _ im String vorkommen.

                  Kommentar


                  • #10
                    Original geschrieben von onemorenerd
                    $pos = strpos("test_text", "_");
                    $firstPart = substr("test_text", 0, $pos);

                    liefert immer "test" bzw. allgemein immer den Substring bis zum ersten _, ganz egal wieviele _ im String vorkommen.
                    der wollte aber der letzte haben
                    da passt besser strrpos
                    substr($string,strrpos($string,"_"));

                    so viele Einsätze bei so einer Kleinichkeit
                    in diesem Thread gebe ich kein Kommentar mehr
                    Slava
                    bituniverse.com

                    Kommentar


                    • #11
                      Original geschrieben von kerbstone
                      Ich möchte alles vor dem "_".
                      *hust*

                      Kommentar


                      • #12
                        Original geschrieben von onemorenerd
                        *hust*
                        das ist ein Beweis, dass man nach 01:50 ein Mensch gesunde Schlaf braucht
                        Ich gehe besser schlafen, bevor ich noch mehr Blödsinn geschrieben habe
                        Slava
                        bituniverse.com

                        Kommentar


                        • #13
                          es ginge doch auch ganz einfach:

                          PHP-Code:
                          $text "test_text";
                          $parts=explode("_",$text);
                          //Erster Part:
                          echo $parts[0];

                          //Letzter Part:
                          echo $parts[count($parts)-1]; 
                          ganz simpel ohne viel drum rum

                          Mfg

                          Kommentar


                          • #14
                            Sagte ich doch?
                            gruss Chris

                            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                            Kommentar

                            Lädt...
                            X