Teil aus Variable auslesen

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

  • Teil aus Variable auslesen

    Hy
    Ich programmiere gerade einen Varanstaltungskalender und möchte folgendes machen.
    In der ersten Ansicht die der User sieht, soll nur ein Auszug der Veranstaltung angezeigt werden. also sagen wir die ersten 100 Zeichen.
    Allerdings möchte ich keine Wörter abhacken.
    wie könnte ich einen substr() so inteliget machen, das er nachschaut, ob das Wort auch wirklich zuende ist.

    Regards

    Grobi

  • #2
    hm... aus dem Stegreif: Du machst mit substr() einen String mit den Zeichen 95 bis etwa 110... da schaust dann mit strpos() wo das erste Leerzeichen ist, zählst 94 zum Ergebnis dazu und machst von 0 bis dahin den endgültigen substr().

    CAT Music Files

    Kommentar


    • #3
      hmm,

      ich würde den String erst eploden an den Leerzeichen und dann einfach die einzenene Arrayelemente wieder zussammenfügen und die länge zählen. ist die max. länge überschritten, füge ich nixmehr u, ist insgesamt die sichere Methode, allerdings auch langsamer als Sky's.

      Kommentar


      • #4
        hi,

        wenn du PHP4 hast, kannst du das ganz einfach mit wordwrap() machen -> http://www.php.net/manual/de/function.wordwrap.php

        als Erklärung zur Vorgehensweise: du fügst mittels der Funktion wordwrap() ein Trennzeichen bei bestimmter Postion ein -> wordwrap($string, 100, "%_%"); -> d.h. an Zeichenposition 100 (beziehungsweise eben höher, wenn da gerade ein Zeichen ist) wird dann der String "%_%" eingefügt. Dann kannst du mit substr($string, 0, strpos($string, "%_%")); den Vorschautext dir holen.

        Kommentar


        • #5
          Wordwrap

          Das mit Wordwrap ist genau das, was ich gesucht hab. mit Substr und Explode hatte ich inzwischen schon rumexperimentiert und es auch hin bekommen.

          Das mit Wordwrap sieht auch sehr gut aus, nur muß ich da im worstcase mit nem Fehler Rechnen, da ja irgendwer auf die Idee kommen könnte einen _ in seinem Text zu verwenden.

          JoelH:
          Wieso bist du dir so sicher, das deine Methode langsamer ist ?? Ich hatte mit der Explode Methode keine besondere verlangsamung feststellen können.

          btw. hat jemmand ne Funktion parat, die ich bei der Entwicklung einbauen könnte, um Performance Messungen zu machen um wie in diesem Fall die schnellste Methode herauszufinden??
          Regards

          Grobi

          Kommentar


          • #6
            Warum im worstcase ein Fehler??? Du sollst ja auch nicht _ als Trennzeichen benutzen, sondern %_% -> von mir aus auch %@Mein_Trennzeichen_errät_niemand@% oder =_grzkzugksjhbkjsbskjbmnsb_= -> hundertprozentig wird es wenn du als Trenner $trenner=md5(uniqid(rand()));
            ich denke, sowas gibt wohl niemand ein, oder?!

            Kommentar


            • #7
              Im folgenden Sample gilt das Blank (" ") als Wordtrennzeichen.

              <?
              // Der Veranstaltungstext
              $input = '
              Ich programmiere gerade einen Varanstaltungskalender und möchte folgendes machen. In der ersten Ansicht die der User sieht, soll nur ein Auszug der Veranstaltung angezeigt werden, also sagen wir die ersten 100 Zeichen.
              Allerdings möchte ich keine Wörter abhacken. wie könnte ich einen substr() so intelligent machen, das er nachschaut, ob das Wort auch wirklich zuende ist.
              ';

              // Der Offset in Anzahl Zeichen
              $offset=55;

              print substr($input, 0, (strpos(substr($input, $offset), " ") + $offset))." ...";
              ?>

              Kommentar

              Lädt...
              X