Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] abschneiden eines strings nach dem letzten leerzeichen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] abschneiden eines strings nach dem letzten leerzeichen

    HI,

    ich lese aus ner DB mittels diesem befehl
    Code:
    $sqlArtikel="SELECT id,datum,header_".$_SESSION['lang'].",LEFT(text_".$_SESSION['lang'].",300) FROM artikel LIMIT 3";
    aus der spalte text 300 zeichen aus, dadurch kann es passieren das ein wort mitendrinnen abgschnitten ist, das will ich nicht...

    wie kann ich jetzt in php sagen gehe an das ende vom string und schneide nach dem letzten leerzeichen alles weg, weil so habe ich dann immer ein ganzes wort zum schluss....

    mfg,
    destroy90210

  • #2
    Such doch mit strripos nach dem letzten Leerzeichen und schneide da einfach ab, oder - in meinen Augen optisch schöner - füge da "..." ein

    Kommentar


    • #3
      PHP-Code:
      if (true==$more && strlen($more)>300)
      {
          
      $i=299;
          while (
      substr($more$i1)!=chr(32))
          {
              
      $i += 1;
          }

          
      $ii=$i 1;

          if (
      substr($more$ii1)==chr(47))
          {
              
      $i += 3;
          }
          
      $more=substr($more0$i);
          
      $more.=' ....';

      so in etwa könnt ich mir das vorstellen

      Kommentar


      • #4
        mit strripos
        Sieht immer unschön aus, wenn mitten im Wort gekürtzt wird.
        Nur ein Vorschlag:
        http://www.cix88.de/cix_php/php_text...egrenzen_3.php

        Kommentar


        • #5
          Welchen gedanklichen Fehler habe ch denn da gemacht?

          php.net sagt dazu

          Find position of last occurrence of a case-insensitive string in a string
          Und wenn ich das letzte Leerzeichen suche und da abschneide, wird doch nicht mitten im Wort gekürzt. Oder sehe ich da was falsch?

          Kommentar


          • #6
            teste diese MYSQL-Abfrage:
            Code:
            $sqlArtikel=
            "
            SELECT
               id,
               datum,
               header_".$_SESSION['lang'].",
               TRIM(TRAILING SUBSTRING_INDEX(LEFT(text_".$_SESSION['lang'].",300), ' ', -1) FROM LEFT(text_".$_SESSION['lang'].",300))
            FROM
               artikel
            LIMIT 3
            ";
            Ich hoffe, daß ich mich dabei nicht verheddert habe.

            mfG ~dilemma~

            Kommentar


            • #7
              Also, ich hab' jetzt mal auf die SChnelle (nicht getestet) diese Funktion geschrieben:
              PHP-Code:
              <?php
              $news 
              'Ich bin die Nachricht. Ich bin die Nachricht. Ich bin die Nachricht. Ich bin die Nachricht.';

              function 
              cut(&$string$num)
              {
                if (
              strlen($string) > $num)
                {
                  
              $string substr($string0$num);
                  
              $num strrpos($string' ');
                  
              $string substr($string,0,$num);
                  
              $string .= '...';
                }
                return 
              $string// Egal ob zu lange oder nicht...
              }
              echo 
              cut($news70);
              ?>

              Kommentar


              • #8
                Habe noch eine Möglichkeit gefunden:

                PHP-Code:
                function cut(&$string$num)
                {
                  if (
                strlen($string) > $num)
                  {
                    
                $string substr($string0$num);
                    
                $num strrpos($string' ');
                    
                $string substr($string,0,$num);
                    
                $string .= '';
                  }
                  return 
                $string
                }
                $name2 cut($name40);

                $this->Cell(0,10$name2); 

                Kommentar


                • #9
                  Was hast Du da "gefunden"? Das hast Du aus dem 4 Jahre alten Posting darüber abgeschrieben?!
                  [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
                    Zitat von nikosch Beitrag anzeigen
                    Was hast Du da "gefunden"? Das hast Du aus dem 4 Jahre alten Posting darüber abgeschrieben?!
                    stimmt - wollte ich auch hier eigentlich nicht angeben, hatte aber aus versehen die Antwort auf den alten Thread gepostet
                    Hatte 2 Fenster offen ... sorry kann man das verschieben nach:
                    http://www.php.de/php-einsteiger/535...zu-substr.html

                    Kommentar


                    • #11
                      Hihi, habe ich mir schon fast gedacht. Schön, dass wenigstens einer die Boardsuche benutzt.
                      [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