Abfragen ob Satz bsp 3 Wörter hat.

  • Guten Tag,


    ich habe leider nichts Gefunden zu dem Thema außer "str_word_count".


    Ich möchte gerne Abfragen ob ein Text eine Bestimmte Anzahl an Wörtern hat:



    Beispiel:


    Heute ist ein Wunderbarer Tag zum Grillen:



    Da möchte ich Abfragen:


    TESTWEISE !!!!


    if(SatzHat3Wörter) {

    echo "Satz hat 3 Wörter";

    } else {

    echo "Satz hat keine 3 Wörter";

    }



    Wie mache ich das? Habe dazu wirklich nichts gefunden.




    Gruß

  • Du solltest es mal zumindest versuchen.

    Ich bin bei Php auch nee Niete ,aber ich Versuche es zumindest mal.

    Ich Probier es mal.

    PHP
    <?php
    $menge=count(explode(" ", "hallo ich bin ein Satz"));
    if($menge<=3){
    echo "3 oder wenniger";
    }else{
    echo "Mehr als 3";
    }
    ?>

    Ich darf mir zwar jetzt wieder anhöhren das es sch... ist und alles falsch,aber ich habe es zumindest mal versucht.

    Jetzt bist du dran ok:)

  • Ich darf mir zwar jetzt wieder anhöhren das es sch... ist und alles falsch

    Nö. :)


    Es ist echt erschreckend, wenn man einen Hinweis bekommt und dann an so einfachen Sachen scheitert. Da muss man sich doch mal fragen, ob Programmieren das richtige Hobby ist oder ob man sich einfach mal mit den Grundlagen beschäftigen sollte. Und damit meine ich jetzt nicht dich basti1012

  • Eine andere Variante


    PHP
    <?php
        $text = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr";
        
        if ((substr_count($text , " ") + 1) > 3)
            echo "Mehr als drei";
        else
            echo "Weniger oder gleich als drei";
    ?>
  • ich habe leider nichts Gefunden zu dem Thema außer "str_word_count".

    Ich verstehe ehrlich gesagt nicht, warum das dann nicht das richtige sein soll?

    PHP
    if ( str_word_count($text) <= 3 ) {
    
        // weniger als oder gleich 3 Worte
    
    } else {
    
        // mehr wie 3 Worte
    
    }

    Wenn es eine Funktion gibt, die das macht, was Du willst, gibt es selten einen Grund, das Verhalten mit anderen Funktionen zu simulieren.

  • Arne Drews


    Mit str_word_count gibt es manchmal Probleme:

    PHP
    <?php
        $text = "Alles schön und gut, aber manchmal funktioniert das nicht";
        
        echo str_word_count($text);
    ?>

    Da liefert das Script eine 10, obwohl 9 richtig wäre.


    In den "User Contributed Notes" zu str_word_count findet man in der Doku:

    Damit funktioniert es wieder. Da kann man aber auch gleich explode und count nehmen

  • Dafür gibt es einen dritten Parameter:

    PHP
    $str = 'Alles schön und gut, aber manchmal funktioniert das nicht';
    print_r( str_word_count($str, 0, 'ö') );
    Code
    9

    Die charlist kann man auch extern pflegen und als Variable mit angeben, um es wartbarer zu machen. Bzgl. CaseSinsitive einfach den String als lower übergeben, man benötigt ja nur die Anzahl der Worte unabhängig der Groß-/Kleinschreibung.


    Bleibt immer noch übersichtlicher, als die Umwege über Array-Funktionen.

  • Mit


    $str = "Österreich, Ägypten, 300$, Überfluss, Straße";


    wird das z.B. aber interessant. Da halte ich ein count mit explode doch für einfacher. Da sind mir Sonderzeichen und Umlaute völlig wurscht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!