2011-09-14 8 views
10

Sto provando a limitare il mio PHP echo a soli 200 caratteri e poi se ce ne sono altri li sostituisco con "...".Limitare l'output dell'eco di PHP a 200 caratteri

Come posso modificare la seguente dichiarazione per consentire ciò?

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

Non sarebbe più facile per creare una funzione personalizzata? – badideas

+1

possibile duplicato di [Ritagliare un blocco di testo alla parola più vicina quando viene raggiunto un determinato limite di caratteri?] (Http://stackoverflow.com/questions/708882/trimming-a-block-of-text-to-the- parola più vicina-quando-un-certo-carattere-limite-è-re) –

risposta

47

Beh, si potrebbe fare una funzione personalizzata:

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

si utilizza in questo modo:

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

Questo porta a molto spazio :) – Luka

+2

@Luka, Ma è una funzione e una leggibile, mentre le nostre soluzioni erano one-liner per una volta usa solo –

+0

Ciao, Grazie per la risposta, scusa, non conosco abbastanza bene il PHP, dove in quella dichiarazione lo dico ad echo ['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

Così:

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

o avvolto in una funzione:

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

echo_200($str); 
+1

Avrei usato substr. +1 –

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

modo più flessibile è una funzione con due parametri:

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

utilizzo:

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

Potresti aggiungere una spiegazione del perché e del modo in cui questo codice risponde alla domanda. Sarebbe molto più utile di questo dump di codice senza parole. – trincot

+0

Ho corretto la formattazione, anche la denominazione della funzione non è la migliore. Non è meglio della prima risposta. –

2

Dà una stringa di max 200 caratteri o 200 caratteri normali o 200 caratteri seguito da '...'

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