如何在PHP中获得字符串的前n个字符?什么是最快的方法来修剪一个字符串到特定的字符数,并添加'…如果需要的话?
当前回答
if(strlen($text) > 10)
$text = substr($text,0,10) . "...";
其他回答
要在函数内创建(用于重复使用)并动态限制长度,请使用:
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, '..');
//The simple version for 10 Characters from the beginning of the string
$string = substr($string,0,10).'...';
更新:
基于检查长度的建议(也确保修剪和未修剪的字符串长度相似):
$string = (strlen($string) > 13) ? substr($string,0,10).'...' : $string;
所以你会得到一个最多13个字符的字符串;13个(或更少)普通字符或10个字符后跟“…”
更新2:
或作为函数:
function truncate($string, $length, $dots = "...") {
return (strlen($string) > $length) ? substr($string, 0, $length - strlen($dots)) . $dots : $string;
}
更新3:
我写这个答案已经有一段时间了,实际上我不再使用这段代码了。我更喜欢这个函数,它可以防止使用wordwrap函数打断单词中间的字符串:
function truncate($string,$length=100,$append="…") {
$string = trim($string);
if(strlen($string) > $length) {
$string = wordwrap($string, $length);
$string = explode("\n", $string, 2);
$string = $string[0] . $append;
}
return $string;
}
这就是我的工作
function cutat($num, $tt){
if (mb_strlen($tt)>$num){
$tt=mb_substr($tt,0,$num-2).'...';
}
return $tt;
}
其中$num表示字符数,$tt表示字符串,用于操作。
Substr()是最好的,你还需要先检查字符串的长度
$str = 'someLongString';
$max = 7;
if(strlen($str) > $max) {
$str = substr($str, 0, $max) . '...';
}
Wordwrap不会修剪字符串,只是分割它…
这个函数可以在中间不中断单词的情况下完成工作
function str_trim($str,$char_no){
if(strlen($str)<=$char_no)
return $str;
else{
$all_words=explode(" ",$str);
$out_str='';
foreach ($all_words as $word) {
$temp_str=($out_str=='')?$word:$out_str.' '.$word;
if(strlen($temp_str)>$char_no-3)//-3 for 3 dots
return $out_str."...";
$out_str=$temp_str;
}
}
}
推荐文章
- 在PHP单元测试执行期间,如何在CLI中输出?
- 在PHP中使用heredoc的优势是什么?
- PHP中的echo, print和print_r有什么区别?
- 如何删除表中特定列的第一个字符?
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 将整数转换为字符串,以逗号表示千
- 如何将XML转换成PHP数组?
- 将JavaScript字符串中的多个空格替换为单个空格
- 如何将对象转换为数组?
- printf()和puts()在C语言中的区别是什么?
- 从IP地址获取位置
- jQuery -替换字符串中某个字符的所有实例
- Base64长度计算?
- 使用split("|")按管道符号拆分Java字符串
- 获取数组值的键名