如何在PHP中获得字符串的前n个字符?什么是最快的方法来修剪一个字符串到特定的字符数,并添加'…如果需要的话?
当前回答
$yourString = "bla blaaa bla blllla bla bla";
$out = "";
if(strlen($yourString) > 22) {
while(strlen($yourString) > 22) {
$pos = strrpos($yourString, " ");
if($pos !== false && $pos <= 22) {
$out = substr($yourString,0,$pos);
break;
} else {
$yourString = substr($yourString,0,$pos);
continue;
}
}
} else {
$out = $yourString;
}
echo "Output String: ".$out;
其他回答
要在函数内创建(用于重复使用)并动态限制长度,请使用:
function string_length_cutoff($string, $limit, $subtext = '...')
{
return (strlen($string) > $limit) ? substr($string, 0, ($limit-strlen(subtext))).$subtext : $string;
}
// example usage:
echo string_length_cutoff('Michelle Lee Hammontree-Garcia', 26);
// or (for custom substitution text
echo string_length_cutoff('Michelle Lee Hammontree-Garcia', 26, '..');
如果你想要切割,小心不要分割单词,你可以做下面的事情
function ellipse($str,$n_chars,$crop_str=' [...]')
{
$buff=strip_tags($str);
if(strlen($buff) > $n_chars)
{
$cut_index=strpos($buff,' ',$n_chars);
$buff=substr($buff,0,($cut_index===false? $n_chars: $cut_index+1)).$crop_str;
}
return $buff;
}
如果$str比$n_chars短,则原形返回。
如果$str等于$n_chars也会返回它。
如果$str比$n_chars长,那么它会寻找下一个空格来切割,或者(如果直到最后没有更多的空格)$str会在$n_chars被粗鲁地切割。
注意:注意此方法将删除HTML中的所有标记。
我使用的函数是:
function cutAfter($string, $len = 30, $append = '...') {
return (strlen($string) > $len) ?
substr($string, 0, $len - strlen($append)) . $append :
$string;
}
看到它的行动。
if(strlen($text) > 10)
$text = substr($text,0,10) . "...";
使用子串
http://php.net/manual/en/function.substr.php
$foo = substr("abcde",0, 3) . "...";
推荐文章
- 编写器更新和安装之间有什么区别?
- 是否有可能更新一个本地化的故事板的字符串?
- 为什么字符串类型的默认值是null而不是空字符串?
- 在Python中包装长行
- 本地机器上的PHP服务器?
- 如何评论laravel .env文件?
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 如何检查字符串的特定字符?
- Haskell:将Int转换为字符串
- 在PHP中检测移动设备的最简单方法
- 将字符串转换为Uri
- jUnit中的字符串上的AssertContains
- 如何在树枝模板中呈现DateTime对象
- 我如何把变量javascript字符串?
- 如何删除查询字符串,只得到URL?