Sehr kurze Auszug: PHP, schneiden also das Zählen der Zeichen

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;
}

5 Kommentare: "Sehr kurze Auszug: PHP, schneiden also das Zählen der Zeichen"

  1. 13. September 2009 Raben :

    Kleine Fehler in den Titel "Cash" ;)
    Semra nützlich, Ihre Beiträge! ;)

  2. 14. September 2009 Giovambattista Fazioli :

    @ Raben: Das passiert in den frühen Morgenstunden : D Dank

  3. 18. September 2009 Santino Bivacqua :

    Hallo Ich werde diese Lösung für einige Zeit zu verwenden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $text , $len , $textContinue = '...' ) { getShortDescription Funktion ($ text, $ len, $ textContinue ='...') {
    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.

  4. 18. September 2009 Giovambattista Fazioli :

    : @ Santino Bivacqua: interessant ... um mir eine Variante, die benutzt gefunden explode() , in der Praxis statt Ihrer stristr() :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $text , $limit , $msg ) { wordCut Funktion ($ text, $ limit, $ msg) {
    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;
    }
  5. 18. September 2009 Santino Bivacqua :

    @ 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 :)

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL