//中文字符串截取函数
function sysSubStr($string,$length,$append= false) {
if(strlen($string) <= $length) {
return $string;
}
else
{
$i= 0;
while($i< $length)
{
$stringTMP= substr($string,$i,1);
if( ord($stringTMP) >=224 ) //ord()返回字符串的第一个字符的ASCII值
{
$stringTMP= substr($string,$i,3);
$i= $i+ 3;
}
elseif( ord($stringTMP) >=192 )
{
$stringTMP= substr($string,$i,2);
$i= $i+ 2;
}
else
{
$i= $i+ 1;
}
$stringLast[] = $stringTMP;
}
$stringLast= implode("",$stringLast); //implode() 函数把数组元素组合为一个字符串
if($append)
{
$stringLast= "";
}
return $stringLast;
}
}
函数调用如下:
sysSubStr(str,46,true);//str是要截取的字符串;46是要显示的长度,可自己设定;第三个设置为true即可
function strLength($str,$charset='utf-8'){
if($charset=='utf-8') $str = iconv('utf-8','gb2312',$str);
$num = strlen($str);
$cnNum = 0;
for($i=0;$i<$num;$i++){
if(ord(substr($str,$i+1,1))>127){
$cnNum++;
$i++;
}
}
$enNum = $num-($cnNum2);
$number = ($enNum/2)+$cnNum;
return ceil($number);
}
测试:
$temp='我的我的我的我的1234cedede';
echo(strLength($temp,'gb2312'));
<php
echo substr(需要截取字符串, 起止数, 需要截取的长度);
>
截取字符串只支持英文。如果字符串包含中文。或混排。以及文字 编码。gb2312 和 utf8 。截取方式就不一样了。
推荐使用 bugfree 的截取字符串函数
例子:/
@package BugFree
@version $Id: FunctionsMainincphp,v 132 2005/09/24 11:38:37 wwccss Exp $
Return part of a string(Enhance the function substr())
@author Chunsheng Wang <wwccss@263net>
@param string $String the string to cut
@param int $Length the length of returned string
@param booble $Append whether append "": false|true
@return string the cutted string
/
function sysSubStr($String,$Length,$Append = false)
{
if (strlen($String) < = $Length )
{
return $String;
}
else
{
$I = 0;
while ($I < $Length)
{
$StringTMP = substr($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3);
$I = $I + 3;
}
elseif( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2);
$I = $I + 2;
}
else
{
$I = $I + 1;
}
$StringLast[] = $StringTMP;
}
$StringLast = implode("",$StringLast);
if($Append)
{
$StringLast = "";
}
return $StringLast;
}
}
$String = "CodeBitcn -- 简单、精彩、通用";
$Length = "18";
$Append = false;
echo sysSubStr($String,$Length,$Append);
>
sql语句输出的时候格式化
$sql = "SELECT LEFT(字段名,限制的标题长度) AS title FROM 表名";
---------------------------------------
css格式化
css
contents ul{ width:120px;
overflow:hidden;
//line-height:18px;
}
contents ul li{
overflow:hidden;
}
contents ul li a{
margin:0;
display:block;
width:100px;
white-space:nowrap;
float:left;
text-overflow:ellipsis;
overflow:hidden;
}
html
<div class="contents">
<ul id="c_jcdj_u">
<li><a href='newsDetailhtmlid={0}'>标题,任意长度标题,任意长度标题,任意长度</a></li>
<li><a href='newsDetailhtmlid={0}'>标题,任意长度标题,任意长度标题,任意长度</a></li>
<li><a href='newsDetailhtmlid={0}'>标题,任意长度标题,任意长度标题,任意长度</a></li>
<li><a href='newsDetailhtmlid={0}'>标题,任意长度标题,任意长度标题,任意长度</a></li>
<li><a href='newsDetailhtmlid={0}'>标题,任意长度标题,任意长度标题,任意长度</a></li>
</ul>
</div>
以上就是关于PHP限制新闻标题的长度全部的内容,包括:PHP限制新闻标题的长度、PHP 怎么获取一段字符串的长度 并且还要区分中文和英文 无论一个汉字还是一个英文字母都只算一个字符、php,怎么获取指定长度的字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)