<?php echo $row[title'];?>关于PHP标题长度 10

<?phpecho$row[title'];?>关于PHP标题长度我想限制标题的长度在23个汉字如果超过23个汉字它才会显示出……省略号没到23个字的不显示省略号鼠标放上... <?php echo $row[title'];?>关于PHP标题长度 我想限制标题的长度在23个汉字 如果超过23个汉字它才会显示出……省略号 没到23个字的不显示省略号 鼠标放上去可以看到标题的内容 实在是找不到这个方面的信息了 请直接上代码 大家帮帮忙 再此感谢
我是UTF8的编码
展开
 我来答
百度网友29dad8b1d
2010-08-30 · TA获得超过110个赞
知道答主
回答量:68
采纳率:0%
帮助的人:0
展开全部
<?php
header("Content-type: text/html; charset=utf-8");
$title='我喜欢这个游,戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏我喜欢这个游戏';

function cut_str($str, $len = 0, $dot = '...',$encoding = 'utf-8') {
if (!$len || strlen($str) <= $len) {
return $str;
}

$tempstr = '';
$str = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $str);

if ($encoding == 'utf-8') {
$n = $tn = $noc = 0;

while($n < strlen($str)) {
$t = ord($str[$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 >= $len) {
break;
}
}

if($noc > $len) {
$n -= $tn;
}

$tempstr = substr($str, 0, $n);
} elseif ($encoding == 'gbk') {
for ($i=0; $i<$len; $i++) {
$tempstr .= ord($str{$i}) > 127 ? $str{$i}.$str{++$i} : $str{$i};
}
}

$tempstr = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $tempstr);
return $tempstr.$dot;
}

// 鼠标放上去可以看到标题的内容,不知道是不是标签的title属性???
echo cut_str($title,46);
KisskVjr
2010-08-31 · TA获得超过153个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:88.9万
展开全部
这是一个截取中文的问题,跟编码有关,GBK下一个汉字2个字节,UTF-8下一个汉字3个字节,如果直接用php的substr难免会出现错误,不如乱码,比如? 等等
再此只贴一个截取中文的函数 即可解决LZ的问题
//截取中文无乱码
function substr_cn($string, $start, $length) {
if(strlen($string)>$length){
$str = null;
$len = $start + $length;
for($i=$start; $i<$len; $i++){
if(ord(substr($string,$i,1)) > 0xa0) {
$str .= substr($string,$i,2);
$i++;
} else {
$str .= substr($string,$i,1);
}
}
return $str.'...';
} else {
return $string;
}
}

如果不满足要求,LZ可以在这个函数的基础上修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
智财商言
2010-09-06 · TA获得超过188个赞
知道小有建树答主
回答量:577
采纳率:52%
帮助的人:141万
展开全部
用css实现兼容ie,firefox

div{
width:200px;/*容器的基本定义*/
height:200px;
background-color:#eee;
}
/* IE下的样式 */
p span{
display: block;
width:200px;/*对宽度的定义,根据情况修改*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}/* FF 下的样式 */
p{clear:both;}
p span{float:left;
max-width:175px;
}
p:after{
content:"...";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喜欢选择的
2010-09-01 · TA获得超过367个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:343万
展开全部
<div title="<?=$s?>"><?=(mb_strlen($s, 'UTF-8') > 23 ? mb_substr($s, 0, 23, 'UTF-8').'...' : $s)?></div>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
相逢一笑泯仇恩
2010-08-30 · TA获得超过141个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:130万
展开全部
<?php
$title=$row['title']
$len=strlen($title);
if($len>46){
$val=substr($title,0,46);
print $val."......";
}else{
$val=$title;
print $val;
}

}
?>
鼠标放上去可以看到标题的内容这个不会哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式