dedecms 的cn_substr_utf8字符串截取函数商榷_dedecms_CMS教程_脚本之家

在dedecms里面 cn_substr_utf8 函数是这样的Jdw迪尔课堂自学网-|第二课堂|--(官网)


复制代码
代码如下:
Jdw迪尔课堂自学网-|第二课堂|--(官网)
/**Jdw迪尔课堂自学网-|第二课堂|--(官网)
* utf-8中文截取,单字节截取模式Jdw迪尔课堂自学网-|第二课堂|--(官网)
*Jdw迪尔课堂自学网-|第二课堂|--(官网)
* @access publicJdw迪尔课堂自学网-|第二课堂|--(官网)
* @param string $str 需要截取的字符串Jdw迪尔课堂自学网-|第二课堂|--(官网)
* @param int $slen 截取的长度Jdw迪尔课堂自学网-|第二课堂|--(官网)
* @param int $startdd 开始标记处Jdw迪尔课堂自学网-|第二课堂|--(官网)
* @return stringJdw迪尔课堂自学网-|第二课堂|--(官网)
*/Jdw迪尔课堂自学网-|第二课堂|--(官网)
if ( ! function_exists('cn_substr_utf8'))Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
function cn_substr_utf8($str, $length, $start=0)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $start+1)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
return '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
preg_match_all("/./su", $str, $ar);Jdw迪尔课堂自学网-|第二课堂|--(官网)
$str = '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
$tstr = '';</p><p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取Jdw迪尔课堂自学网-|第二课堂|--(官网)
for($i=0; isset($ar[0][$i]); $i++)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($tstr) < $start)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$tstr .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $length + strlen($ar[0][$i]) )Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$str .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
break;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
return $str;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
Jdw迪尔课堂自学网-|第二课堂|--(官网)

其中Jdw迪尔课堂自学网-|第二课堂|--(官网)


复制代码
代码如下:
Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $length + strlen($ar[0][$i]) )Jdw迪尔课堂自学网-|第二课堂|--(官网)
Jdw迪尔课堂自学网-|第二课堂|--(官网)

一行可能会造成截取后多了一个字符,可以考虑改为Jdw迪尔课堂自学网-|第二课堂|--(官网)


复制代码
代码如下:
Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $length + strlen($ar[0][$i]) -1 )Jdw迪尔课堂自学网-|第二课堂|--(官网)
Jdw迪尔课堂自学网-|第二课堂|--(官网)

测试代码如下Jdw迪尔课堂自学网-|第二课堂|--(官网)


复制代码
代码如下:
Jdw迪尔课堂自学网-|第二课堂|--(官网)
$f = "你好fasdfa你fasdf#e#";Jdw迪尔课堂自学网-|第二课堂|--(官网)
$pos = strpos($f,'#e#');Jdw迪尔课堂自学网-|第二课堂|--(官网)
var_dump($pos);Jdw迪尔课堂自学网-|第二课堂|--(官网)
var_dump(cn_substr_utf8($f,$pos));Jdw迪尔课堂自学网-|第二课堂|--(官网)
var_dump(cn_substr_utf82($f,$pos));</p><p>function cn_substr($str, $slen, $startdd=0)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
global $cfg_soft_lang;Jdw迪尔课堂自学网-|第二课堂|--(官网)
if($cfg_soft_lang=='utf-8')Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
return cn_substr_utf8($str, $slen, $startdd);Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
$restr = '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
$c = '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
$str_len = strlen($str);Jdw迪尔课堂自学网-|第二课堂|--(官网)
if($str_len < $startdd+1)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
return '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
if($str_len < $startdd + $slen || $slen==0)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$slen = $str_len - $startdd;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
$enddd = $startdd + $slen - 1;Jdw迪尔课堂自学网-|第二课堂|--(官网)
for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$restr .= $c;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}</p><p> if(ord($str[$i])>0x80)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if($str_len>$i+1)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$c = $str[$i].$str[$i+1];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
$i++;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$c = $str[$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}</p><p> if($i >= $enddd)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($restr)+strlen($c)>$slen)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
break;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
$restr .= $c;Jdw迪尔课堂自学网-|第二课堂|--(官网)
break;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
return $restr;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}</p><p>function cn_substr_utf8($str, $length, $start=0)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $start+1)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
return '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
preg_match_all("/./su", $str, $ar);</p><p> $str = '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
$tstr = '';</p><p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取Jdw迪尔课堂自学网-|第二课堂|--(官网)
for($i=0; isset($ar[0][$i]); $i++)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($tstr) < $start)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> $tstr .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> if(strlen($str) < $length + strlen($ar[0][$i]) )Jdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> $str .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> break;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
return $str;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}</p><p>function cn_substr_utf82($str, $length, $start=0)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($str) < $start+1)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
return '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
preg_match_all("/./su", $str, $ar);</p><p> $str = '';Jdw迪尔课堂自学网-|第二课堂|--(官网)
$tstr = '';</p><p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取Jdw迪尔课堂自学网-|第二课堂|--(官网)
for($i=0; isset($ar[0][$i]); $i++)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{Jdw迪尔课堂自学网-|第二课堂|--(官网)
if(strlen($tstr) < $start)Jdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> $tstr .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> if(strlen($str) < $length + strlen($ar[0][$i]) -1 ) // phpsir 加了 -1 Jdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> $str .= $ar[0][$i];Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
elseJdw迪尔课堂自学网-|第二课堂|--(官网)
{</p><p> break;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
return $str;Jdw迪尔课堂自学网-|第二课堂|--(官网)
}Jdw迪尔课堂自学网-|第二课堂|--(官网)
Jdw迪尔课堂自学网-|第二课堂|--(官网)

扫一扫手机访问