php的调用限制字数

比如$_rows['title']调用出来的显示有50个字,但是我只想显示20个。怎么设置呢?... 比如$_rows['title']调用出来的显示有50个字,但是我只想显示20个。怎么设置呢? 展开
 我来答
bj2004
2011-09-20 · TA获得超过382个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:354万
展开全部
mb_substring()函数兼容性不好,假如服务器不支持就不能用
建议使用DirCMS内容管理系统自带的一个字符串截取函数

GBK编码下:
// 字符串截取
function sub_string($string, $length, $dot='')
{
$string=trim($string);
$strlen = strlen($string);
if($strlen <= $length) return $string;
$string = str_replace(array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string);
$strcut = '';
$dotlen = strlen($dot);
$maxi = $length - $dotlen - 1;
for($i = 0; $i < $maxi; $i++)
{
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
$strcut = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $strcut);
return $strcut.$dot;
}

UTF-8编码下:
function sub_string($string, $length, $dot='')
{
$string=trim($string);
$strlen = strlen($string);
if($strlen <= $length) return $string;
$string = str_replace(array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string);
$strcut = '';
$n = $tn = $noc = 0;
while($n < $strlen)
{
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1; $n++; $noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2; $n += 2; $noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3; $n += 3; $noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4; $n += 4; $noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5; $n += 5; $noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6; $n += 6; $noc += 2;
} else {
$n++;
}
if($noc >= $length) break;
}
if($noc > $length) $n -= $tn;
$strcut = substr($string, 0, $n);
$strcut = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $strcut);
return $strcut.$dot;
}

使用方法:

$_rows['title'] = sub_string($_rows['title'],20,'...')
秋水静轩
推荐于2018-03-29 · 知道合伙人软件行家
秋水静轩
知道合伙人软件行家
采纳数:206 获赞数:585
就读于西北农林科技大学--信息工程学院--软件工程专业,对软件开发、网页设计有较专业的知识。

向TA提问 私信TA
展开全部
要确保楼主打开了extension=php_mbstring.dll ;

PHP code:

/**
* 字符串截取
*
*/
function sub_str($str, $length = 0, $append = true)
{
$str = trim($str);
$strlength = strlen($str);

if ($length == 0 || $length >= $strlength)
{
return $str; //截取长度等于0或大于等于本字符串的长度,返回字符串本身
}
elseif ($length < 0) //如果截取长度为负数
{
$length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度
if ($length < 0)
{
$length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度
}
}

if (function_exists('mb_substr'))
{
$newstr = mb_substr($str, 0, $length, EC_CHARSET);
}
elseif (function_exists('iconv_substr'))
{
$newstr = iconv_substr($str, 0, $length, EC_CHARSET);
}
else
{
//$newstr = trim_right(substr($str, 0, $length));
$newstr = substr($str, 0, $length);
}

if ($append && $str != $newstr)
{
$newstr .= '...';
}

return $newstr;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林丹彩伟
推荐于2016-06-17 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:103万
展开全部
//注意设置对应的编码格式
$_rows['title'] = mb_substring($_rows['title'],0,20,'utf-8')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhishemi521
2011-09-21 · TA获得超过3万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9590万
展开全部
3种方法限制:

1.读出的过程中限制:JS中控制长度

2.读出后截取限制:用css进行样式隐藏

3.读出先限制:动态程序查出后,进行处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Zerolone
2011-09-20 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:132万
展开全部
用substr mb_substr
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式