我正在尋找一種方法來限制在PHP中的字符串,並加上...在最後,如果字符串太長。限制字符串長度
限制字符串長度
回答
您可以使用類似於下面的東西:
if (strlen($str) > 10)
$str = substr($str, 0, 7) . '...';
You might want to take a look at this answer如果你不想拆分單詞。
如果您不關心分詞,那麼只需使用php substr function即可。
用php online manual's string functions做一點小作業。 你會想在比較設置使用strlen
,substr
如果你需要削減它,並與連接符"..."
或"…"
要截斷由最高限額提供的字符串不破壞一個字使用:
/**
* truncate a string provided by the maximum limit without breaking a word
* @param string $str
* @param integer $maxlen
* @return string
*/
public static function truncateStringWords($str, $maxlen)
{
if (strlen($str) <= $maxlen) return $str;
$newstr = substr($str, 0, $maxlen);
if (substr($newstr, -1, 1) != ' ') $newstr = substr($newstr, 0, strrpos($newstr, " "));
return $newstr;
}
從PHP 4.0.6 ,對於同樣的事情
功能MB功能 _ strimwidth可用於您的要求
<?php
echo mb_strimwidth("Hello World", 0, 10, "-yahooo!-");
//Hello W-yahooo!-
?>
它有更多的選擇,雖然,這裏是這個mb_strimwidth
文檔wordwrap()函數也可以是有用的:http://www.w3schools.com/php/func_string_wordwrap.asp – 2016-05-04 16:49:05
但個人而言,我更喜歡使用:$ s = preg_replace('/ \ s +?(\ S +)?$ /','',substr($ s,$ START,$ LIMIT)); – 2016-05-04 17:56:43
@CyrilJacquart更好地避免使用正則表達式,只要它不是必需的。 – 2016-06-10 10:30:59
以另一種方式來限制PHP中的字符串並添加閱讀文本或像'...'使用以下代碼
if (strlen(preg_replace('#^https?://#', '', $string)) > 30) {
echo substr(preg_replace('#^https?://#', '', $string), 0, 35).'…';
}
在Laravel,有一個字符串util的這個功能,它是這樣實現:
public static function limit($value, $limit = 100, $end = '...')
{
if (mb_strwidth($value, 'UTF-8') <= $limit) {
return $value;
}
return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end;
}
$值= str_limit;(7 '這個字符串是真的很長。')
//這個ST ...
- 1. 限制XSLT中的字符串長度
- 2. 限制XML/HTML字符串長度
- 3. 限制字符串的長度
- 4. NHibernate QueryOver受字符串長度限制
- 5. 限制FreeMarker中的字符串長度
- 6. 限制屬性的字符串長度
- 7. Ajax字符串長度限制?
- 8. C++ - 限制字符串長度
- 9. 限制字符串的最大長度
- 10. TextBox字符長度限制
- 11. 字符長度限制$ _GET?
- 12. DataTable中的字符串DataColunm:限制字符串的長度
- 13. 字符串字段長度限制和換行符
- 14. 使用MYSQL將字符串長度限制爲最小字符
- 15. android editText限制字符串長度不是字符
- 16. 使用角度2 /離子限制字符串長度2
- 17. 用角度纏繞文本並限制字符串長度
- 18. JSON.Net串行化時限制屬性字符串長度
- 19. 字符串長度有限的strtod
- 20. javascript參數字符長度限制?
- 21. UITextfield限制中文字符長度
- 22. RSA密鑰長度 - 字符限制?
- 23. 密碼的字符/長度限制?
- 24. 短信120個字符長度限制
- 25. PostgreSQL字符變長度限制
- 26. 字符串的長度比字符串的長度長
- 27. 設置字符串長度限制,然後填充子字符串或空格
- 28. weka StringToWordVector限制字長度
- 29. 字符串超過ajax POST長度限制
- 30. AngularJS和Handlebars限制輸出的字符串長度
您可能會發現['S($ STR) - >截斷($長度)'](https://github.com/delight-im/PHP-Str/ blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L233)甚至['s($ str) - > truncateSafely($ length)'](https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc /src/Str.php#L246)很有幫助,在[這個獨立的庫](https://github.com/delight-im/PHP-Str)中找到。 – caw 2016-07-27 01:01:21