Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] String an bestimmter Stelle trennen aber erst nach dem nächsten Leerzeiche

Einklappen

Neue Werbung 2019

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

  • [Erledigt] String an bestimmter Stelle trennen aber erst nach dem nächsten Leerzeiche

    Hallo Leute.

    Momentan trenne ich einen String mit substr,dass hat aber den Nachteil das es mitten im Wort trennt und das sieht irgendiwe Mist aus.

    Ich will das es bis zum 200sten Zeichen liest und dann zum nächsten Leerzeichen springt und dort erst den String trennt. Ich habe per Google und im Manual nichts gefunden,was aber auch sein kann das ich einfach falsch gesucht habe.

    Welche Funktion muss ich nehmen um mein Vorhaben umsetzen zu können?

    Danke für eure Antworten mfg der litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    [URL]http://www.lit-web.de[/URL]

  • #2
    moin PHP: strpos - Manual

    Kommentar


    • #3
      oder besser [man]preg_replace[/man]

      Kommentar


      • #4
        Hallo Leute.

        Ich war damals etwas voreilig mit posten nun aber brauchte ich das so und habe es auch fast hinbekommen.

        Nur anstatt das es mit Text ausgibt und an der gewünschten Stelle einen Schnitt am letzten Leerzeichen nach 100 Stellen im Text macht gibt er mir die Zahl 104 aus.

        Hier mal der Code!
        PHP-Code:
        $menu_text strpos($news['news_text'],' ',100);
           
        $code_array = array(
                
        "#\[.+\]#siU"
                
        );
           
        $replace = array(
               
        "",
               
        ""
               
        );
           echo 
        '<u><b>'.$news['titel'].'</b></u><br>';
           
           if(
        $menu_text !== false)
           {
            echo 
        nl2br(preg_replace($code_array,$replace,html_entity_decode($menu_text)));
            if(
        strlen($menu_text)>100)
            {
             echo 
        'mehr lesen';
            }
           } 
        Wie Ihr seht kommt der Originaltext aus einer DB und hat auch BB-Code der hier raus geschnitten wird.

        Warum wird mir da nur die Zahl 104 ausgegeben und nicht der abgeschnittene Text?

        Danke für Rat und Tat mfg der litter
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        [URL]http://www.lit-web.de[/URL]

        Kommentar


        • #5
          int strpos ( string haystack, mixed needle [, int offset] )
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            Danke nikosch für deine Antwort nur richtig schlau werde ich grad nicht draus,leider.
            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
            [URL]http://www.lit-web.de[/URL]

            Kommentar


            • #7
              strpos liefert eine Position als int, keinen String. Was ist daran nicht zu verstehen?
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Was kann ich da anders machen? Weil cycap mir ja strpos empfohlen hat um einen String nach einer gewissen Stelle aber eben erst am nächsten Leerzeichen zu trennen. Erst habe ich das immer mit substr gemacht das hatte aber den Nachteil das es mitten im Wort getrennt wurde.
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                [URL]http://www.lit-web.de[/URL]

                Kommentar


                • #9
                  Wie wärs mit strpos und substr?
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Das heist ich müsste erst mit substr die Stelle ermitteln wo ich den Text abschneiden will und danach dann mit strpos ermitteln wo das nächste leerzeichen sich befindet um dort dann den String n der richtigen Stelle abzuschneiden?

                    Wäre das in etwa der richtige Gedankengang?
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    [URL]http://www.lit-web.de[/URL]

                    Kommentar


                    • #11
                      Erst mit strpos(,,$offset) bestimmen, wo das nächste Leerzeichen vorkommt und dann mit substr() die Zeichenkette auftrennen.

                      Kommentar


                      • #12
                        Ok besten Dank werde das mal sp probieren.
                        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                        [URL]http://www.lit-web.de[/URL]

                        Kommentar


                        • #13
                          litter, was los? Du baust ab
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Ja bitte um Entschuldigung Leute das ich mich erst jetzt melde,musste wirklich weg und hatte die Zeit ganz vergessen.

                            Hier mein Code wie er auch funktioniert und genau das macht was ich will,vieleicht nicht die eleganteste Lösung aber sie funzt.

                            PHP-Code:
                            $menu_text strpos($news['news_text'],' ',110);
                               
                            $code_array = array(
                                    
                            "#\[.+\]#siU"
                                    
                            );
                               
                            $replace = array(
                                   
                            ""
                                   
                            );
                               echo 
                            '<u><b>'.$news['titel'].'</b></u><br>';
                             
                               
                            $ausgabe substr($news['news_text'],0,$menu_text);
                                echo 
                            nl2br(preg_replace($code_array,$replace,html_entity_decode($ausgabe)));
                                if(
                            strlen($ausgabe)>100)
                                {
                                 echo 
                            '<br>...<span class="nm_link">[<a href="">mehr lesen</a>]</span>';
                                } 
                            Danke für alle helfenden,mfg der litter
                            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                            [URL]http://www.lit-web.de[/URL]

                            Kommentar


                            • #15
                              Also ich weiß nicht. Ich würde die ganzen Ersetzungen vor der Längenermittlung machen. Das ist doch dafür relevant.

                              Was für ein Format ist das überhaupt? BBCode mit HTML?
                              [COLOR="#F5F5FF"]--[/COLOR]
                              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                              [COLOR="#F5F5FF"]
                              --[/COLOR]

                              Kommentar

                              Lädt...
                              X