免费提问

有什么办法限制标题的长度?

144
提问者 骨子里的傲
2018-09-14 22:59 悬赏 0财富值 阅读 506回答 3

在写网站代码的时候,标题超过了长度怎么办?我切图的位置大概能放12个汉字,可是标题有30几个字,这种情况怎么办?我用的语言是php,在线等大神回复!

html5
登录 后发表回答
sakpk
1楼 · 2018-09-15 09:38.采纳回答

这个好办,写个函数,然后调用就行了。

//字符串截取
function cut_str($sourcestr,$cutlength)  
{  
   $returnstr='';  
   $i=0;  
   $n=0;  
   $str_length=strlen($sourcestr);//字符串的字节数  
   while (($n<$cutlength) and ($i<=$str_length))  
   {  
      $temp_str=substr($sourcestr,$i,1);  
      $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码  
      if ($ascnum>=224)    //如果ASCII位高与224,  
      {  
$returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符          
         $i=$i+3;            //实际Byte计为3  
         $n++;            //字串长度计1  
      }  
      elseif ($ascnum>=192) //如果ASCII位高与192,  
      {  
         $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符  
         $i=$i+2;            //实际Byte计为2  
         $n++;            //字串长度计1  
      }  
      elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母,  
      {  
         $returnstr=$returnstr.substr($sourcestr,$i,1);  
         $i=$i+1;            //实际的Byte数仍计1个  
         $n++;            //但考虑整体美观,大写字母计成一个高位字符  
      }  
      else                //其他情况下,包括小写字母和半角标点符号,  
      {  
         $returnstr=$returnstr.substr($sourcestr,$i,1);  
         $i=$i+1;            //实际的Byte数计1个  
         $n=$n+0.5;        //小写字母和半角标点等与半个高位字符宽...  
      }  
   }  
         if ($str_length>$i){  
          $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号  
      }  
    return $returnstr;  
} 

调用cut_str后面跟参数即可。


洋洋妈妈
2楼-- · 2018-09-15 18:08

自己写一个函数照样可以截取标题长度,思路就是先把标题读到一个数组,然后判断数组长度,如果标题超出你定义的长度就优先截取前多少字。函数写好之后直接调用就行了,代码的实例我就不写了。


admin
3楼-- · 2018-09-15 22:27

很多框架都带这个函数的。看看帮助手册吧。


网站简介 | 竞价技巧 | 网站建设 | 原创作品 | 联系我们 |

鄂ICP备17013851号-4|经营许可证:鄂B2-20160818 |互联网药品信息服务资格证: 粤20130124|鄂公网安备:42010601000001|版权登记号:2016SR017186