Text-Begrenzung nach x Zeilen

sheeba1507

Erfahrenes Mitglied
Hi,

für eine News-Box benötige ich eine Möglichkeit, den Text auf eine
vorgegebene Anzahl an Zeilen zu begrenzen.
Dabei soll das letzte Wort aber vollständig bleiben.
Ein Link soll dann zur kompletten Text-Ausgabe führen.

Mit substr() werden ja lediglich die Zeichen gezählt und das letzte Wort
könnte ohne weitere Funktionen ebenfalls abgebrochen werden.
Außerdem ist der Platzbedarf der einzelnen Buchstaben unterschiedlich.

Sowohl hier als auch in anderen Foren habe ich dazu nichts finden können.
Gibt es überhaupt eine Möglichkeit, die Zeilen einer Ausgabe abzufragen
und die letzte verfügbare Zeile mit der Zeichenfolge ... abzuschließen ?

Gruß, Mike
 
Hallo,

ich hab schon mal eine Lösung gesehen, wo einfach eine gewisse Anzahl von Zeichen (die kannst du ja bei bekannter Zeilenbreite und -anzahl ermitteln) ausgegeben werden darf. Somit ist der Text schon mal begrenzt. Dann suchst du das letzte vorkommende Leerzeichen, wobei an dieser Stelle dann das Stringende gesetzt wird --> vollständiges Wort am Ende...

Google mal nach "php textvorschau" oder so...
Hier ein Beispiel

Lg Andi
 
PHP:
$s = "Dies ist eine String Mit Leertzeichen"
echo substr($s,0,strpos($s.' ',' ',6))

würde z.B. nach dem ist anhalten

gruß

katosan
 
Zuletzt bearbeitet:
Moin,

so, wie ich dich verstehe, meinst du mit Zeilen die sichtbaren Zeilen im Anzeigebereich des Browserfensters, und nicht die tatsächlichen Zeilen in der Zeichenkette(definiert durch die entsprechenden Steuerzeichen).

Sollte ich dich recht verstanden haben, hast du da per PHP eigentlich keine Möglichkeit, das sich der verfügbare Platz und der benötigte Platz inkl. der daraus resultierenden Umbrechung des Textes erst im Browserfenster ergeben.

Du müsstest da mit Beispielwerten herumexperimentieren, was jedoch auch nicht unproblematisch sein wird, da ein entscheidender Faktor bei der entstehenden Zeilenanzahl die Verteilung der Länge der einzelnen Worte sein wird.
 
Hi zusammen,

mittlerweile habe ich mich von der Wunsch-Vorstellung, die Anzahl der Zeilen als
Vorgabe zu nehmen, entgültig wieder verabschiedet.

Da die News-Box eh nicht sehr lang werden soll, kann man einen gewissen
Unterschied in der Anzeige wohl noch verkraften.
Deshalb habe ich das Problem nun wie folgt gelöst :
PHP:
if (strlen($output) > 200) { echo substr($output,0,strpos(($output),' ',200)).$link; }
else { echo $output; }
Dadurch werden alle Texte mit mehr als 200 Zeichen nach dem letzten Leerzeichen
innerhalb dieser Begrenzung abgeschnitten und der Link zur Volltext-Ausgabe angezeigt.
Kürzere Texte werden komplett und ohne Link ausgegeben.

Thx nochmal an alle für eure Lösungs-Ansätze.
Das Thema hat sich damit erledigt.

Gruß, Mike
 
Zuletzt bearbeitet:
Zurück