Fragmento muy breve: PHP, palabras cortadas, contando los caracteres

Como se observa en el fragmento muy corto: corte PHP palabra es más agradable para romper un texto que "las palabras", ya que evita cortar una palabra. Todavía hay contar a aquellos que prefieren cortar los personajes, ya que hace que los "cortes" más homogéneas y similares entre sí, a pesar del riesgo significativo de corte de una palabra, rompió la red! Además también se debe considerar que, con la excepción de casos especiales, las fuentes no son proporcionales y por lo tanto la palabra "www" puede ocupar un espacio horizontal en píxeles de "Wii".
Del mismo modo, cuando hay palabras que usted puede encontrarse con situaciones paraddosali, la generación de las aparentes diferencias entre los textos que se rompen sìvoglione. Por ejemplo, la frase "cara a cara" contiene cuatro palabras, como "Washington, la Casa Blanca." Sin embargo, es claro que la última frase es visiblemente más "largo", en píxeles.
Una posible solución al problema es una función híbrida, a continuación, teniendo en cuenta tanto la duración de los personajes, tanto el "corte" al final de la palabra:

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
/ **
* Corta una cuerda a la caja caracteres palabras
* En esta versión no son "contados" los espacios
* Elimine el comentario de la línea si desea un corte
* Carácter exacto
*
* @ Autor = = deshacer
* @ Fecha 11/09/2009
*
* @ Param (string) $ cadena para corte de c
* @ Param (int) $ el número máximo de caracteres
* @ Param (string) $ y cadena para colgar, por defecto "[...]"
* @ Return
* /
$c , $l , $e = "[...]" ) { word_cut_for_chars función ($ c, $ s, $ e = {"[...]")
strlen ( $c ) > $l ) { if ( strlen ($ c)> $ l) {
explode ( ' ' , $c ) ; $ A = explotar ('', $ c);
0 ; $ S = 0;
"" ; R $ = "";
$i = 0 ; $i < count ( $a ) ; $i ++ ) { for ($ i = 0; $ i < conteo ($ a) $ i + +) {
strlen ( $a [ $i ] ) ; $ S + = strlen ($ a [$ i]);
/ / $ S + = (strlen ($ a [$ i]) + 1) / / también tiene "espacio"
$s > $l ) return ( $r . $e ) ; if ($ s> $ l) return ($ r. $ s);
$a [ $i ] . " " ; R $ .= $ a [$ i] '".
}
}
; return $ c;
}

5 comentarios: "fragmento muy corto: PHP, palabras cortadas, contando los caracteres"

  1. 13 de septiembre 2009 Raben :

    Pequeño error en el título de "Cash" ;)
    Semra útiles tus mensajes! ;)

  2. 14 de septiembre 2009 Giovambattista Fazioli :

    @ Raben: Eso es lo que ocurre en las primeras horas : D Gracias

  3. 18 de septiembre 2009 Santino Bivacqua :

    Hola voy a utilizar esta solución desde hace algún tiempo:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $text , $len , $textContinue = '...' ) { getShortDescription función ($ texto, $ len, $ textContinue ='...') {
    strip_tags ( $text ) ; //Elimino eventuali tag HTML $ Texto = strip_tags ($ texto); / / Eliminar las etiquetas HTML
    strlen ( $text ) <= ( int ) $len ) { if ( strlen ($ texto) <= (int) $ longitud) {
    ; return $ texto;
    { Else {}
    wordwrap ( $text , ( int ) $len , "___end___" ) ; $ Texto = ajuste de línea ($ texto, (int) $ len ", ___end___");
    ( $text , 0 , - strlen ( stristr ( $text , "___end___" ) ) ) . $textContinue ; volver substr ($ texto, 0, - strlen ( stristr ($ texto, "___end___ "))). textContinue $;
    }
    }

    Se debe medir el tiempo empleado por ambos (tal vez con cadenas largas) y entiendo que es la mejor solución.

  4. 18 de septiembre 2009 Giovambattista Fazioli :

    : @ Santino Bivacqua: interesante ... todo me pareció una variante que utiliza explode() , en la práctica, en lugar de su stristr() :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $text , $limit , $msg ) { función wordCut ($ texto, $ limit, $ msg) {
    strlen ( $text ) > $limit ) { if ( strlen ($ texto)> $ limite) {
    wordwrap ( $text , $limit , '[cut]' ) ; $ Txt1 = ajuste de línea ($ texto, $ limit ", [corte]");
    explode ( '[cut]' , $txt1 ) ; $ Txt2 = explotar ('[corte], $ txt1);
    $txt2 [ 0 ] ; $ $ Txt2 ourTxt = [0];
    $ourTxt . $msg ; $ = $ $ OurTxt FinalTxt mensajes.;
    { Else {}
    $text ; FinalTxt texto $ = $;
    }
    ; return $ finalTxt;
    }
  5. 18 de septiembre 2009 Santino Bivacqua :

    @ Giovambattista Fazioli:
    De hecho, el principio de funcionamiento es muy similar :)
    Ahora hay tres soluciones para tratar de verificar (en textos) como el más rápido :)

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <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