substr截取中文字串的问题 搜索一下吧这类的贴子太多了。找一下faq也有 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个函数吧,保证好用,具体使用方法不用我说你一看就明白给分!!!<?//$str 要截取的字符串//$start 从第$start个字符开始截取,一般取 0//$len 截取长度function CsubStr($str,$start,$len) { $strlen=strlen($str); $clen=0; for($i=0;$i<$strlen;$i++,$clen++) { if ($clen>=$start+$len) break; if(ord(substr($str,$i,1))>0xa0) { if ($clen>=$start) $tmpstr.=substr($str,$i,2); $i++; } else { if ($clen>=$start) $tmpstr.=substr($str,$i,1); } } return $tmpstr; }?> echo substr($text,30).chr(0); 这有一个贴子,可以给你启发http://expert.csdn.net/Expert/topic/1217/1217292.xml?temp=2.796572E-02 临时改造了一下,没有测试<?/******************************************** Product : ** Version : ** Copyright : Baby Studio ** Author : Yingjie Pan ** Email : [email protected] ********************************************/?><?$vsmystr=BabySubstr('我是BabyStudio,请多多指教!',4);echo($vsmystr.'<br/>');function BabySubstr($vsstr_,$vilen_){ $vsreturn=''; $viindex=0; $vitmp=0; $vstmp=''; $vicncharaterend=0; $vscharacter=substr($vsstr_,$viindex,1); $vsrealcharacter=substr($vsstr_,$viindex,1); while(strlen($vsrealcharacter)) { $viindex++; if(ord($vscharacter)<0 || ord($vscharacter)>127) { if($vicncharaterend==0) { $vicncharaterend=1; } else { $vitmp++; $vicncharaterend=0; } } else { $vitmp++; } $vstmp=$vstmp.$vscharacter; if($vitmp==$vilen_) { $vsreturn=$vstmp; break; } if(!strlen(substr($vsstr_,$viindex,1))) { $vsreturn=$vstmp; break; } $vscharacter=substr($vsstr_,$viindex,1); $vsrealcharacter=substr($vsstr_,$viindex,1); } return($vsreturn);}?> 求助大家一个php程序iis下的伪静态问题 帮忙看一个小函数 不懂 怎么用PHP获取SQL表数据记录分页显示 这种下拉列表怎么写啊?! PHP 日期格式转换去除问题 【初学】php服务器配置 远程读取疑问:常用的远程读取方法是哪些? PHP has encountered an Access Violation at ??????? win2003下IIS6.0出问题! [PHP版版主申请] 麻烦大家发表意见,谢谢 如何把一个目录里的所有文件分页显示出来 win98+apache+php的安装问题(200分,求助,搞不出来我急)
给分!!!
<?
//$str 要截取的字符串
//$start 从第$start个字符开始截取,一般取 0
//$len 截取长度
function CsubStr($str,$start,$len)
{
$strlen=strlen($str);
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
if ($clen>=$start+$len)
break;
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}
?>
http://expert.csdn.net/Expert/topic/1217/1217292.xml?temp=2.796572E-02
<?
/*******************************************
* Product : *
* Version : *
* Copyright : Baby Studio *
* Author : Yingjie Pan *
* Email : [email protected] *
*******************************************/
?>
<?
$vsmystr=BabySubstr('我是BabyStudio,请多多指教!',4);
echo($vsmystr.'<br/>');function BabySubstr($vsstr_,$vilen_)
{
$vsreturn='';
$viindex=0;
$vitmp=0;
$vstmp='';
$vicncharaterend=0;
$vscharacter=substr($vsstr_,$viindex,1);
$vsrealcharacter=substr($vsstr_,$viindex,1);
while(strlen($vsrealcharacter))
{
$viindex++;
if(ord($vscharacter)<0 || ord($vscharacter)>127)
{
if($vicncharaterend==0)
{
$vicncharaterend=1;
}
else
{
$vitmp++;
$vicncharaterend=0;
}
}
else
{
$vitmp++;
}
$vstmp=$vstmp.$vscharacter;
if($vitmp==$vilen_)
{
$vsreturn=$vstmp;
break;
}
if(!strlen(substr($vsstr_,$viindex,1)))
{
$vsreturn=$vstmp;
break;
}
$vscharacter=substr($vsstr_,$viindex,1);
$vsrealcharacter=substr($vsstr_,$viindex,1);
}
return($vsreturn);
}
?>