tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
440
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    Hallo,

    ist es möglich den text in einer Zelle zu kürzen,...
    ja ich kenn die lösung von zeichen zählen,... aber die ist für mich nicht gut genug, da ich erstens nicht weiß wie lange die zelle ist und zweitens wenn ich einen "i" und "l" reichen Text schreibe ist der Text nach gleichvielen Zeichen kürzer wenn ich einen "m" und "w" reichen Text schreibe,...

    ich möchte gerne das der Text, sobald er zu lange ist, mindestens drei "..." vor Zellen ende aufhört und in diesen Falle drei "."e hinten hingesetzt werden.

    |Das ist ein Text der kurz genug ist |
    |Dieser Text ist viel zu Lange deshalb wird er gek...|

    ist das technisch machbar****?

    Danke für eure hilfe
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Dass einige Zeichen länger als andere sind, hängt von der Schrift ab. Du müsstest nun wissen wie die Breitenverhältnisse derm Buchstaben in der entsprechenden Schrift ist. Da man aber in CSS meistens eine ganze Schriftfamilie oder halt Alternativschriften anbietet, ist es für PHP eigentlich unmöglich zu wissen wie der Text in der Ausgabe aussieht.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    gibt es die Möglichkeit den Text zu kürzen****?
    bei Bildern gibt es die Möglichkeit overflow:hidden; damit kann ich alles was übersteht rausnehmen,... dies wäre für mich zumindest schon mal ein Anfang,...

    wenn ich mal Zeit habe, versuch ich mal eine klasse zu schreiben die die Buchstaben ausmisst und dann einfach die Länge der Buchstaben im Text addiert,... mal schauen ob ich so was hinbekomme (vor allem in einer vertretbaren Zeit)

    edit:
    sehe gerade das overflow:hidden; nur für divs geeignet ist,... gibt es für tabellen sowas****?
    kannich einen Zeilen umbruch verbieten? und was passiert dann****?
    Geändert von JesusFreak777 (30.11.10 um 12:50 Uhr)
     

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Bitte achte auf Groß- und Kleinschreibung.

    wenn ich mal Zeit habe, versuch ich mal eine klasse zu schreiben die die Buchstaben ausmisst und dann einfach die Länge der Buchstaben im Text addiert,... mal schauen ob ich so was hinbekomme (vor allem in einer vertretbaren Zeit)
    Was nützt dir das dann aber? Ich verstehe die Anwendung nicht richtig.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    naja, jetzt brauche ich eine Lösung in einer Zelle das ich möglichst viel Text in einer Zelle habe ohne Zeilenumbruch und ohne automatischen vergrößern der Zelle,... weiß aber noch nicht wie,...

    später dann möchte ich das wie oben beschrieben haben,... z.B. ich weiß meine Zelle ist 100px groß,... mein Text 12x i + 17x e + 3x m,... = 120px dann wird der Text bei 95px abgeschnitten und ein ... dahinter gesetzt,... das wäre schön,...
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ansatz:
    Du speicherst die Schrift auf dem Server
    Du ermittelst die Textgrösse deines Textes über imagettfbbox().
    Du entfernst von Hinten Wort um Wort und prüfst erneut, bis die Breite unterhalb deiner Limite ist.

    Alternativ kann auch der ganze Text als Grafik generiert werden, ist aber nicht umbedingt von Vorteil was die Ladezeit der Seite angeht

    Es wird verschiessen aussehen wenn (Ohne Gewähr auf Vollständigkeit):
    item: Der User die Schrift nicht hat
    item: Der User die Textgrössendarstellung an seinem Browser ändert
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Yaslaws Idee etwas ausgebaut:

    PHP-Code:
    <?php
    function breite ($text) {

    $pfad 'Pfad\ARIAL.TTF';
    $punkt "";

    $coordinates imagettfbbox 120$pfad$text);

    while (
    $coordinates[4] > 200) {
        
    $punkt "...";
        
    $coordinates imagettfbbox 120$pfad$text);
        
    $pos strrpos($text" ");
        
    $text substr($text0$pos);
    }

    echo 
    $text .$punkt;
    }



    $text "Der ist kurz";
    echo 
    breite($text);

    echo 
    "<br />";

    $text "Das ist ein ziemlich langer Text";
    echo 
    breite($text);
    ?>
    Geht so wie ich es verstanden habe nur mit True Typ Fonts und der Pfad zur Schrift muss exakt angegeben werden. Aber dann geht es wohl.

    Im Beispiel wird der Text gekürzt wenn er Breiter als 200 Pixel ist.
    JesusFreak777 bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

Ähnliche Themen

  1. Text kürzen lassen
    Von truckdriver im Forum PHP
    Antworten: 14
    Letzter Beitrag: 07.07.07, 20:00
  2. Text in eine variable kürzen
    Von Trasher im Forum PHP
    Antworten: 1
    Letzter Beitrag: 06.03.07, 21:50
  3. Text in Grafik kürzen
    Von webraccoon im Forum PHP
    Antworten: 2
    Letzter Beitrag: 23.04.05, 13:39
  4. Text mit BB-Codes kürzen
    Von Sunray im Forum PHP
    Antworten: 0
    Letzter Beitrag: 17.02.05, 23:24
  5. Text kürzen
    Von CyberMax im Forum PHP
    Antworten: 6
    Letzter Beitrag: 06.11.03, 12:39

Stichworte