Anzahl eines Zeichens in einem String zählen

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

  • Anzahl eines Zeichens in einem String zählen

    Hi,
    ich suche nach einer Möglichkeit wie ich in einem String ein bestimmtes Zeichen zählen lassen kann (möglichst mit einer Funktion).

    Ich habe so etwas ähnliches gefunden doch dies funktioniert nicht richtig wie ich es möchte:


    PHP-Code:
    $a strspn("a","Ach was ein Tag."); 
    Liefert als Ergebnis 1. Ich möchte aber eine Funktion die entweder 2 (case sensitive (Groß/Kleinschreibung berücksichtigt) oder 3 (wenn sie nicht case sensitive ist) ausgibt.

    Welche Funktion würde sich da anbieten?


    Danke für eure Hilfe!

  • #2
    Re: Anzahl eines Zeichens in einem String zählen

    Original geschrieben von chroman
    Ich habe so etwas ähnliches gefunden
    Nee, die Funktion ist Quark für dein Vorhaben.


    substr_count() würde sich schon eher anbieten, arbeitet aber case-sensitive.
    Kann man ja aber nicht mit strtolower/strtoupper kombinieren.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Anzahl eines Zeichens in einem String zählen

      Original geschrieben von wahsaga
      Nee, die Funktion ist Quark für dein Vorhaben.


      substr_count() würde sich schon eher anbieten, arbeitet aber case-sensitive.
      Kann man ja aber nicht mit strtolower/strtoupper kombinieren.
      Hi was meinst du mit "Kann man ja aber nicht mit strtolower/strtoupper kombinieren. " Also ich weiß nicht was strtolower/strtoupper ist!


      Kann ich substr_count() nehmen um foglende Zeichen zu zählen:

      1. a-z (alle Buchstaben von a bis z klein)
      2. A-Z (alle Buchstaben von a bis z klein)
      3. -
      4. _
      5. (Leerzeichen)
      6. [
      7. ]

      Gibt es auch Zeichen die evtl nicht funktionieren wie z. B. ein / ?


      Danke für deine Hilfe!

      Kommentar


      • #4
        Ich habe die Funktion getestet und ich bekomme nichts sinnvolles heraus:

        PHP-Code:
        $a substr_count("a","aaa"); 
        Ich bekomme 0 heraus

        PHP-Code:
        $a substr_count("a","ab aa"); 
        Ich bekomme ebenfalls 0 heraus

        Kommentar


        • #5
          Hast du auch im Manual zur Fkt nachgelesen ? Ich würde sagen NEIN. Daher läuft dein Code wie gewünscht, denn die Fkt braucht zuerst den Heuhaufen und dann die Nadel. So wie es du es gemacht hast suchst du nach aaa in a und dat geht ned...

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Re: Re: Re: Anzahl eines Zeichens in einem String zählen

            Original geschrieben von chroman
            Hi was meinst du mit "Kann man ja aber nicht mit strtolower/strtoupper kombinieren. " Also ich weiß nicht was strtolower/strtoupper ist!
            Könnten das vielleicht auch "Funktionen" sein ...?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              http://de2.php.net/manual/de/function.count-chars.php
              damit kannst du jeder zeichen zählen.
              und wenn man keine function gefunden hat, dann schreibt man eine eigene function.
              etwa so

              PHP-Code:
              function buchstabenzahl($buchstabe,$string,$sensetiv=true){
                if(!
              $sensetiv){
                
              $string=strtolower($string);
                
              $buchstabe=strtolower($buchstabe{0});  
                }
                else 
              $buchstabe=$buchstabe{0};
                
              $count=0;
                for(
              $i=0;$i<strlen($string);$i++)
                    if(
              $string{$i}==$buchstabe)$count++;
               return 
              $count;
              }
              echo 
              buchstabenzahl("a","Ach was ein Tag.")."<br />";
              echo 
              buchstabenzahl("a","Ach was ein Tag.",false)."<br />"
              Slava
              bituniverse.com

              Kommentar


              • #8
                und warum eine schleife und $buchstabe als array ansprechen?
                PHP-Code:
                function buchstabenzahl($buchstabe,$string,$sensetiv=true){
                  if(!
                $sensetiv){
                  
                $string=strtolower($string);
                  
                $buchstabe=strtolower($buchstabe);
                  }
                  return 
                substr_count($string$buchstabe);

                ps buchstabe kann auch eine zeichenkette sein.

                Kommentar


                • #9
                  Original geschrieben von 3DMax
                  und warum eine schleife und $buchstabe als array ansprechen?
                  1)eine schleife, weil ich geschrieben habe
                  wenn man keine function gefunden hat, dann schreibt man eine eigene function
                  2)$buchstabe als Array, da er mit seinen Kenntnissen auch ein String reinhauen kann.
                  In diesem Fall wird nur die erste Buchstabe genommen
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    zu 1) substr_count($string, $buchstabe); tut es auch

                    zu 2) dann könnte er auch arrays, objekte, etc.. reinhauen

                    Kommentar


                    • #11
                      zu 1) kann ich mich nur wiederholen
                      zu 2) na ja. Irgend wann ist die Function-Toleranz am Ende
                      zu 3) Jetzt hat er was er haben wollte
                      Slava
                      bituniverse.com

                      Kommentar


                      • #12
                        Original geschrieben von Slava
                        zu 1) kann ich mich nur wiederholen
                        worauf möchtest du hinaus?
                        ich habe lediglich behauptet, dass man anstelle von:
                        PHP-Code:
                          $count=0;
                          for(
                        $i=0;$i<strlen($string);$i++)
                              if(
                        $string{$i}==$buchstabe)$count++;
                         return 
                        $count
                        kompakter auch dies schreiben kann:
                        PHP-Code:
                        return substr_count($string$buchstabe); 

                        Kommentar

                        Lädt...
                        X