<?php echo $row[title'];?>关于PHP标题长度 10
<?phpecho$row[title'];?>关于PHP标题长度我想限制标题的长度在23个汉字如果超过23个汉字它才会显示出……省略号没到23个字的不显示省略号鼠标放上...
<?php echo $row[title'];?>关于PHP标题长度 我想限制标题的长度在23个汉字 如果超过23个汉字它才会显示出……省略号 没到23个字的不显示省略号 鼠标放上去可以看到标题的内容 实在是找不到这个方面的信息了 请直接上代码 大家帮帮忙 再此感谢
我是UTF8的编码 展开
我是UTF8的编码 展开
展开全部
<?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);
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);
展开全部
这是一个截取中文的问题,跟编码有关,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可以在这个函数的基础上修改
再此只贴一个截取中文的函数 即可解决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可以在这个函数的基础上修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用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:"...";
}
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:"...";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<div title="<?=$s?>"><?=(mb_strlen($s, 'UTF-8') > 23 ? mb_substr($s, 0, 23, 'UTF-8').'...' : $s)?></div>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$title=$row['title']
$len=strlen($title);
if($len>46){
$val=substr($title,0,46);
print $val."......";
}else{
$val=$title;
print $val;
}
}
?>
鼠标放上去可以看到标题的内容这个不会哦
$title=$row['title']
$len=strlen($title);
if($len>46){
$val=substr($title,0,46);
print $val."......";
}else{
$val=$title;
print $val;
}
}
?>
鼠标放上去可以看到标题的内容这个不会哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询