Wie in den gesehen sehr kurze Schnipsel: PHP Wort abgeschnitten ist angenehmer, einen Text zu "Worte" zu brechen, wie es Schneiden ein Wort vermeidet. Es ist noch zu zählen diejenigen, die die Zeichen abgeschnitten, da es die "Schnitte" homogener und einander ähnlich, trotz der erheblichen Risiko des Schneidens ein Wort, durchtrennt das Netz macht es vorziehen! Darüber hinaus sollten Sie auch bedenken, dass, mit Ausnahme für Sonderfälle, die Schriften sind nicht proportional und daher das Wort "www" kann eine horizontale Raum in Pixel als "Wii" zu besetzen.
Auch wenn es Wörter, die Sie in Situationen paraddosali laufen kann, erzeugt offensichtlichen Unterschiede zwischen den Texten, die sìvoglione brechen. Zum Beispiel das Wort "face to face" enthält vier Worte, wie "Washington, im Weißen Haus." Es ist jedoch klar, dass der letzte Satz sichtbar ist "long", in Pixel.
Eine mögliche Lösung des Problems ist eine Hybrid-Funktion, dann unter Berücksichtigung sowohl der Länge der Zeichen, die beide den "cut" am Ende des Wortes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | / ** * Schneidet eine Zeichenfolge mit den Zeichen Worten Cash * In dieser Version sind nicht "gezählt" Räume * Entfernen Sie die Zeile, wenn Sie einen Schnitt wollen * Die genauen Charakter * * @ Author = rückgängig = * @ Date 2009.11.09 * * @ Param (string) $ string to c Schneiden * @ Param (int) $ die maximale Anzahl der Zeichen * @ Param (string) $ und string zu hängen, default "[...]" * @ Return * / $c , $l , $e = "[...]" ) { word_cut_for_chars Funktion ($ c, $ s, $ e = {"[...]") strlen ( $c ) > $l ) { if ( strlen ($ c)> $ l) { explode ( ' ' , $c ) ; $ A = explode ('', $ c); 0 ; $ S = 0; "" ; $ R = ""; $i = 0 ; $i < count ( $a ) ; $i ++ ) { for ($ i = 0; $ i < count ($ a) $ i + +) { strlen ( $a [ $i ] ) ; $ S + = strlen ($ a [$ i]); / / $ S + = (strlen ($ a [$ i]) + 1) / / hat auch "Raum" $s > $l ) return ( $r . $e ) ; if ($ s> $ l) return ($ r. $ s); $a [ $i ] . " " ; $ R .= $ a [$ i]. " } } ; return $ c; } |










Kleine Fehler in den Titel "Cash"

Semra nützlich, Ihre Beiträge!
@ Raben: Das passiert in den frühen Morgenstunden
Dank
Hallo Ich werde diese Lösung für einige Zeit zu verwenden:
2
3
4
5
6
7
8
9
strip_tags ( $text ) ; //Elimino eventuali tag HTML $ Text = strip_tags ($ text); / / Löschen Sie alle HTML-Tags
strlen ( $text ) <= ( int ) $len ) { if ( strlen ($ text) <= (int) $ len) {
; return $ text;
{ Else {}
wordwrap ( $text , ( int ) $len , "___end___" ) ; $ Text = wordwrap ($ text, (int) $ len ", ___end___");
( $text , 0 , - strlen ( stristr ( $text , "___end___" ) ) ) . $textContinue ; zurück substr ($ text, 0, - strlen ( stristr ($ text, "___end___ "))). textContinue $;
}
}
Sie sollten die Zeit messen, von beiden (vielleicht mit langen Strings) und zu verstehen, welche Lösung am besten getroffen wird.
: @ Santino Bivacqua: interessant ... um mir eine Variante, die benutzt gefunden
explode(), in der Praxis statt Ihrerstristr():2
3
4
5
6
7
8
9
10
11
strlen ( $text ) > $limit ) { if ( strlen ($ text)> $ limit) {
wordwrap ( $text , $limit , '[cut]' ) ; $ Txt1 = wordwrap ($ text, $ limit "[Schnitt] ');
explode ( '[cut]' , $txt1 ) ; $ Txt2 = explode ('[Schnitt]', $ txt1);
$txt2 [ 0 ] ; $ $ Txt2 ourTxt = [0];
$ourTxt . $msg ; $ = $ FinalTxt ourTxt $ Msg.;
{ Else {}
$text ; FinalTxt $ = $ text;
}
; return $ finalTxt;
}
@ Giovambattista Fazioli:

In der Tat ist das Funktionsprinzip sehr ähnlich
Nun gibt es drei Lösungen, um zu versuchen, um zu überprüfen (in langen Texten) als die am schnellsten