String auf bestimmte breite Kürzen

Hallo,

Ich kenne ja die Funktion substr. Nun möchte ich aber anstatt eine bestimmte Zeichenlänge auf eine bestimmte breite kürzen. Das Problem ist, dass bei Arial (14pt) die Zeichen unterschiedlich lang sind.

Wie geht das (Außer durch eine Grafik)?

PS: Falls der String länger als 150px ist, soll “…” angezeigt werden.

Gar nicht.

Du weisst im Web so gut wie gar nichts ueber den Rechner, auf dem das Ganze angezeigt wird.
Es koennte ja sogar sein, dass Arial nicht vorhanden ist, und deshalb eine andere Schriftart zur Anzeige verwendet wird - mit anderer Zeichenbreite.

Clientseitig gibt’s da schon eher Moeglichkeiten.
forum.de.selfhtml.org/archiv/200 … /#m1199783

OK, Danke. Ich werden dann eine Monospace Schriftart nehmen…

Das Problem scheint mir eher zu sein, daß der Text 150px
breit sein soll. Das könnte auf ein mangelhaftes Layout hinweisen.
Vermutlich verwendest du da einfach die falschen Einheiten für
dein Layout. Wenn du die Breite von Textcontainern in em oder
ex festlegst, kannst du die Breite von Text viel besser abschätzen.
Mit monospace geht das dann sicher sehr gut mit dem
abschneiden, bei anderen Einheiten für die Breite als em oder ex
bist du dann aber immer noch nicht weiter, weil du als Autor
weder wissen noch festlegen kannst, welche Schriftart und -größe
tatsächlich verwendet wird. Bei der Größe findet da ein
komplizierterer Auswahlmechanismus statt, bei dem mögliche
Angaben des Autors nur zum Teil zur tatsächlichen Größe
beitragen.

Insofern kann man das Problem am besten lösen, indem man die
Ursache, die Forderung nach einer Breite von 150px beseitigt.

oder mit einwenig css zb machst du nen span mit der breite von 150px und dem overflow Wert hide und dem white-space Wert pre. Dann fügst du hinter diesem span element noch deine drei Punkte ein et voilà…
Aber da entsteht dann dasproblem, dass du nicht auf Zeichen kürzen kannst, es kann also durchaus mal vorkommen, dass da nacher noch ein drittel eines Buchstabens zu erkennen ist…

mfg Joey