2011-09-14 23 views
10

Estoy tratando de limitar mi PHP echo a solo 200 caracteres y luego, si hay más, reemplazarlos por "...".Limitar la salida del eco de PHP a 200 caracteres

¿Cómo podría modificar la siguiente declaración para permitir esto?

<?php echo $row['style-info'] ?> 
+0

No sería más fácil crear una función personalizada? – badideas

+1

posible duplicado de [Recortar un bloque de texto a la palabra más cercana cuando se alcanza un cierto límite de caracteres?] (Http://stackoverflow.com/questions/708882/trimming-a-block-of-text-to-the- palabra-más-cercana-cuando-un-cierto-límite-de-carácter-es-re) –

Respuesta

47

Bueno, se podría realizar una función personalizada:

function custom_echo($x, $length) 
{ 
    if(strlen($x)<=$length) 
    { 
    echo $x; 
    } 
    else 
    { 
    $y=substr($x,0,$length) . '...'; 
    echo $y; 
    } 
} 

que lo utilice como esto:

<?php custom_echo($row['style-info'], 200); ?> 
+1

Esto lleva mucho espacio :) – Luka

+2

@Luka, pero es una función y una legible, mientras que nuestras soluciones fueron de una sola línea por una vez use only –

+0

Hola, gracias por la respuesta, lo siento, no sé PHP lo suficiente, ¿en qué parte de esa declaración le digo que haga eco ['style-info']? – Craig

2
<?php echo substr($row['style_info'], 0, 200) .((strlen($row['style_info']) > 200) ? '...' : ''); ?> 
0
echo strlen($row['style-info']) > 200) ? substr($row['style-info'], 0, 200)."..." : $row['style-info']; 
15

De esta manera:

echo substr($row['style-info'], 0, 200); 

o envuelto en una función:

function echo_200($str){ 
    echo substr($row['style-info'], 0, 200); 
} 

echo_200($str); 
+1

Hubiera usado substr. +1 –

0
echo strlen($row['style-info'])<=200 ? $row['style-info'] : substr($row['style-info'],0,200).'...'; 
1

manera más flexible es una función con dos parámetros:

function lchar($str,$val){return strlen($str)<=$val?$str:substr($str,0,$val).'...';} 

uso:

echo lchar($str,200); 
1
function TitleTextLimit($text,$limit=200){ 
if(strlen($text)<=$limit){ 
    echo $text; 
}else{ 
    $text = substr($text,0,$limit) . '...'; 
    echo $text; 
} 
+3

¿Podría agregar una explicación de por qué y cómo este código responde la pregunta? Sería mucho más útil que solo este vaciado de código sin palabras. – trincot

+0

He solucionado el formateo, también el nombre de la función no es el mejor. No es mejor que la primera respuesta también. –

2

Da a cabo una serie de máximo 200 caracteres o 200 caracteres normales o 200 caracteres seguido de '...'

$ur_str= (strlen($ur_str) > 200) ? substr($ur_str,0,200).'...' :$ur_str; 
Cuestiones relacionadas