2014-04-01 24 views
1

如果小於x不顯示「...」如何使它不顯示小於x個字符的點?

<?php echo substr(stripslashes($row['news_title']), 0, 20). ".."; ?> 

我把它表現出大於x如果超過20,但它顯示「...」時,有10個字符。無論如何,我可以讓它不顯示?

任何教程?

謝謝!

回答

3

嘗試像

<?php echo substr(stripslashes($row['news_title']), 0, 20); 
     if(strlen($row['news_title']) > 20) 
      echo ".."; 
?> 
+0

謝謝你,它的工作!我糾正了「>」,但感謝人! – TrippedStackers

+1

在查看長度前也應該使用'stripslashes' –

+2

@CrayonViolent首先不應該是'stripslashes'。 –

0

這會怎麼做。

<?php echo strlen(stripslashes($row['news_title']))>20 ?substr(stripslashes($row['news_title']), 0, 20)."...":stripslashes($row['news_title']); ?> 
+2

對於長度超過20的內容以及前20個字符,這將只顯示「...」......不完全是這個問題所要求的。 – Jeff

+0

@Jeff,Modified。 –

2

你可以使用CSS tricks,但是這將是代碼做服務器端:

if (strlen($row['news_title']) <= 20) { 
    echo htmlspecialchars($row['news_title']); 
} else { 
    echo htmlspecialchars(substr($row['news_title'], 0, 20)), '...'; 
} 

注意strlen()數字節,而不是字符本身;這在開始使用Unicode時很重要,在這種情況下,您可能需要考慮使用mb_strlen()

順便說一下,使用stripslashes()是有點紅旗;如果你的報價出來逃脫,問題出在其他地方,不應該成爲表示層的問題......實際上,你應該使用htmlspecialchars()代替應該

相關問題