nur das erste Wort im Satz

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

  • nur das erste Wort im Satz

    Wie kann ich das mit php lösen, das nur das erste Wort im Satz ausgegeben wird?
    Beispiel: Technik macht viel Spaß
    Ausgabe: Technik

  • #2
    ja, mit strpos() die position des ersten leerzeichens ermitteln und mit subst() oder strstr() o.ä. den string entsprechend zuschneiden.

    Kommentar


    • #3
      Natürlich mit einer der String-Funktionen .

      Edit: @penizillin: Das geht auch einfacher
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Oder mit split den String teilen...

        $a="Technik macht Spass";
        $woerter=split(" ",$a);
        echo $woerter[0];

        Kommentar


        • #5
          ja, mit strpos() die position des ersten leerzeichens ermitteln und mit subst() oder strstr() o.ä. den string entsprechend zuschneiden.
          Zuvor aber besser noch ein trim() über den String...
          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
            Original geschrieben von DonManfred
            Oder mit split den String teilen...

            $a="Technik macht Spass";
            $woerter=split(" ",$a);
            echo $woerter[0];
            Ich könnte mir nur vorstellen, dass deine Variante unter Umständen (weitaus) weniger performant ist, da bei einem langen Text ein entsprechend großes Array entsteht. Ich würde die s trpos + substr Methode vorziehen.
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #7
              Leute, schaut doch bitte mal ins Handbuch, bevor ihr so einen Mist postet.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                $a="Technik macht Spass";
                $woerter=split(" ",$a);
                echo $woerter[0];

                Klappt schon gut. Die Sätze haben maximal 200 Zeichen, das geht schon. Vielen Dank

                Kommentar


                • #9
                  Mein Fehler. Habe nicht an den Parameter für die Begrenzung gedacht.
                  EDIT:
                  @unset: Da kann man - der Allgemeinheit zuliebe - auch netter drauf hinweisen.
                  Zuletzt geändert von Griecherus; 19.02.2007, 13:16.
                  Nieder mit der Camel Case-Konvention

                  Kommentar


                  • #10
                    Original geschrieben von DonManfred
                    Oder mit split den String teilen...

                    $a="Technik macht Spass";
                    $woerter=split(" ",$a);
                    echo $woerter[0];
                    Ich möchte nur darauf aufmerksam machen, dass split als Argument auch eine RegEx erwartet und daher von Haus aus schon langsamer ist. Wenn du so einfache Trennungen durchführen willst, solltest du explode benutzen.


                    (Auf die Frage, ob und wie das hier jetzt passt, möchte ich nicht eingehen, sondern nur dass split nicht optimal wäre. Ich persl. würde einfach eine stringfkt. benutzen.)
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      Original geschrieben von Griecherus

                      EDIT:
                      @unset: Da kann man - der Allgemeinheit zuliebe - auch netter drauf hinweisen.
                      OffTopic:
                      Nett hat nicht gefruchtet. Da kam ja noch mehrmals ähnlich suboptimaler Code.
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Ja, explode wäre wohl besser; der Name viel mir gerade nicht ein

                        Ok, der vollständigkeithalber...

                        $a="Technik macht Spass";
                        $wort = trim(substr(trim($a),0,strpos(" ",trim($a))));
                        # Zur sicherheit wegen Leerzeichen am anfang, doppelten Leerzeichen nach dem 1. Wort usw. jeweils geTRIMt.
                        echo $wort;

                        Kommentar


                        • #13
                          Okay, anscheinend werden meine Hinweise durchweg ignoriert:

                          PHP-Code:
                          $str 'Dies ist mein Satz';
                          $ar str_word_count($str1);
                          echo 
                          $ar[0]; 
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar


                          • #14
                            Original geschrieben von unset
                            Okay, anscheinend werden meine Hinweise durchweg ignoriert:

                            PHP-Code:
                            $str 'Dies ist mein Satz';
                            $ar str_word_count($str1);
                            echo 
                            $ar[0]; 
                            Habe jetzt mal das genommen und es ist sehr schnell, danke

                            Kommentar


                            • #15
                              Original geschrieben von ollimagic
                              Habe jetzt mal das genommen und es ist sehr schnell
                              glaub ich nicht, weil str_word_count($str, 1); ein komplettes array liefert und das ist suboptimal.

                              PHP-Code:
                              $str='text text text text text text text text text text text text text';
                              $str.='text text text text text text text text text text text text text';
                              $str.='text text text text text text text text text text text text text';

                              $time=microtime(true);
                              for(
                              $i=0$i<100000$i++)
                               {
                                
                              $ar=str_word_count($str1);
                                
                              $word=$ar[0];
                               }
                              echo 
                              'Laufzeit: '.(microtime(true)-$time).'<br />';

                              $time=microtime(true);
                              for(
                              $i=0$i<100000$i++)
                               {
                                
                              $ar=explode(' '$str2);
                                
                              $word=$ar[0];
                               }
                              echo 
                              'Laufzeit: '.(microtime(true)-$time).'<br />'
                              Laufzeit: 1.43133306503
                              Laufzeit: 0.238773822784

                              Kommentar

                              Lädt...
                              X