一个小问题。可我搞了好就也没搞定。200分相送。在线等。 写错了。是:目的,截取指定字串($str)指定长度($len). 如果$len正好把一个汉字给拆开了,就截取$len-1. 比如$str是"aaa汉",而$len是4,那么就截取长度取3.谁能给个函数,或思路。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <input type="text" name="w" size="20"><input type="submit" name="B1" onclick="alert(w.value.replace(/[^\x00-\xff]/g,'**').length)"> 大哥,我需要php函数。比如,$a = substr("aaaaa拨", 0 , 6);echo $a . "...";结果是aaaaa?..我想解决这个问题。 function substrForgb($str,$len){//该函数只能从开始从截取,如从中间开始,同样需要分析是不是在拆分汉字//原理:国标码的编码机内码为161到255,即A0到FF $totlen=strlen($str); $i=min($len,$totlen); $i--; $flag=-1; while ($i>=0){ if (ord(substr($str,$i,1))>160){ $flag=-1*$flag; echo $flag." ".ord(substr($str,$i,1))."<br>"; }else break; $i--; } if($flag==1)$len=$len-1; $subit=substr($str,0,$len); return $subit;} echo $flag." ".ord(substr($str,$i,1))."<br>";//该行为测试时所用,正式使用时去除 老是打错!!!!!!========================================/* 指定字串:$str 指定长度:$len*/ function substrForgb($str,$len){ $totlen=strlen($str); $i=min($len,$totlen); $i--; $flag=-1; while ($i>=0){ if (ord(substr($str,$i,1))>160){ $flag=-1*$flag; }else break; $i--; } if($flag==1)$len=$len-1; $subit=substr($str,0,$len); return $subit;}=======================END========================== ========================================/* 指定字串:$str 指定长度:$len 指定开始位置:$start*/ function substrForgb($str,$len,$start=0){ $totlen=strlen($str); if(($len >= $totlen && 0 == $start) || $start > $totlen) { return $str; } if($start>0) { $i=$start; $i--; $flag=-1; while ($i>=0) { if (ord(substr($str,$i,1))>160) { $flag=-1*$flag; } else break; $i--; } if($flag==1) { $start--; } } if($len < $totlen-$start) { $i=$len; $i--; $flag=-1; while ($i>=0) { if (ord(substr($str,$i,1))>160) { $flag=-1*$flag; } else break; $i--; } if($flag==1) $len=$len+1; } $subit=substr($str,$start,$len); return $subit;}=======================END========================== preg_match选择性提取 函数的参数问题 js中的一些问题.求些MYSQL的常用命令. 怎么进行二次开发? 双线或使用cdn加速的空间如何正确获取网通客户的IP? 如何动态绑定并执行某些函数 输入问题,问题答案立即呈现在您眼前! 大家帮忙看一下这句话是什么意思? $dao=& new DataAccess ('localhost','user','pass','dbname');这句话在PHP5中是不是可以省去"&"? 大侠求助,php报错,在线等。。。。。。 请问,在设计网上书店时有大于二级类,此类应该如何设计呢?即parent ID 急!!!update 的奇怪问题
$a = substr("aaaaa拨", 0 , 6);
echo $a . "...";结果是aaaaa?..我想解决这个问题。
//该函数只能从开始从截取,如从中间开始,同样需要分析是不是在拆分汉字
//原理:国标码的编码机内码为161到255,即A0到FF
$totlen=strlen($str);
$i=min($len,$totlen);
$i--;
$flag=-1;
while ($i>=0){
if (ord(substr($str,$i,1))>160){
$flag=-1*$flag;
echo $flag." ".ord(substr($str,$i,1))."<br>";
}else break;
$i--;
}
if($flag==1)$len=$len-1;
$subit=substr($str,0,$len);
return $subit;
}
========================================
/*
指定字串:$str
指定长度:$len
*/
function substrForgb($str,$len){
$totlen=strlen($str);
$i=min($len,$totlen);
$i--;
$flag=-1;
while ($i>=0){
if (ord(substr($str,$i,1))>160){
$flag=-1*$flag;
}else break;
$i--;
}
if($flag==1)$len=$len-1;
$subit=substr($str,0,$len);
return $subit;
}
=======================END==========================
/*
指定字串:$str
指定长度:$len
指定开始位置:$start
*/
function substrForgb($str,$len,$start=0){
$totlen=strlen($str); if(($len >= $totlen && 0 == $start) || $start > $totlen)
{
return $str;
} if($start>0)
{
$i=$start;
$i--;
$flag=-1; while ($i>=0)
{
if (ord(substr($str,$i,1))>160)
{
$flag=-1*$flag;
}
else
break;
$i--;
} if($flag==1)
{
$start--;
}
}
if($len < $totlen-$start)
{
$i=$len;
$i--;
$flag=-1; while ($i>=0)
{
if (ord(substr($str,$i,1))>160)
{
$flag=-1*$flag;
}
else
break;
$i--;
}
if($flag==1) $len=$len+1;
}
$subit=substr($str,$start,$len);
return $subit;
}
=======================END==========================