mySplit.php
---------------------
<?
/*******************************************
* Copyright : Baby Studio *
* Email : [email protected] *
* Author : Yingjie Pan *
*******************************************/
?>
<?
$vamyarr=mySplit('我是BabyStudio,请多多指教!','2');
foreach($vamyarr as $vsitem)
{
echo($vsitem.'<br/>');
}
function mySplit($vsstr_,$vilen_)
{
$vareturn=array();
$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_)
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
}
if(!strlen(substr($vsstr_,$viindex,1)))
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
break;
}
$vscharacter=substr($vsstr_,$viindex,1);
$vsrealcharacter=substr($vsstr_,$viindex,1);
}
return($vareturn);
}
?>
---------------------
<?
/*******************************************
* Copyright : Baby Studio *
* Email : [email protected] *
* Author : Yingjie Pan *
*******************************************/
?>
<?
$vamyarr=mySplit('我是BabyStudio,请多多指教!','2');
foreach($vamyarr as $vsitem)
{
echo($vsitem.'<br/>');
}
function mySplit($vsstr_,$vilen_)
{
$vareturn=array();
$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_)
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
}
if(!strlen(substr($vsstr_,$viindex,1)))
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
break;
}
$vscharacter=substr($vsstr_,$viindex,1);
$vsrealcharacter=substr($vsstr_,$viindex,1);
}
return($vareturn);
}
?>
/*******************************************
* Copyright : Baby Studio *
* Email : [email protected] *
* Author : Yingjie Pan *
*******************************************/
?>
<?
$vamyarr=BabySplit('我是BabyStudio,请多多指教!','2');
foreach($vamyarr as $vsitem)
{
echo($vsitem.'<br/>');
}
function BabySplit($vsstr_,$vilen_)
{
$vareturn=array();
$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_)
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
}
if(!strlen(substr($vsstr_,$viindex,1)))
{
array_push($vareturn,$vstmp);
$vitmp=0;
$vstmp='';
break;
}
$vscharacter=substr($vsstr_,$viindex,1);
$vsrealcharacter=substr($vsstr_,$viindex,1);
}
return($vareturn);
}
?>
<?
/********************************************************
* Copyright : Baby Studio *
* Email : [email protected] *
* Author : Yingjie Pan *
*********************************************************/
$vamyarr=BabySplit('我是BabyStudio,请多多指教!','2');//进行分切// +----------------------------------------------------+
// | 结果数组显示 |
foreach($vamyarr as $vsitem)
{
echo($vsitem.'<br/>');
}
// +----------------------------------------------------+// +----------------------------------------------------+
// | 分切函数 |
function BabySplit($vsstr_,$vilen_)
{
//$vsstr_为传进来的字符串,即需要进行分切的字符串
//$vilen_为每个要分成的长度
$vareturn = array();//定义要返回的数组
$viindex = 0;
$vitmp = 0;
$vstmp = '';
$vicncharaterend = 0;
$vscharacter = substr($vsstr_, $viindex, 1);//取第一个字符串,即'我'的前半部分
$vsrealcharacter = substr($vsstr_, $viindex, 1);//取第一个字符串,即'我'的前半部分
while(strlen($vsrealcharacter))//循环出口
{
$viindex++;//依次递加的值
// +----------------------------------------------------+
// | $vitmp进行判断性计数 |
if(ord($vscharacter)<0 || ord($vscharacter)>127)//如果字符的asc码不在0到127之间,执行if内的语句
{
if($vicncharaterend == 0)//如果上一个是0,也就是取的这个字符是前半边汉字那么$vitmp不加1
{
$vicncharaterend = 1;
}else{//如果上一个是1,也就是取这个的字符的后半个汉字那么$vitmp加1
$vitmp++;
$vicncharaterend = 0;
}
}else{
$vitmp++;
}
// +----------------------------------------------------+
$vstmp = $vstmp.$vscharacter;//$vscharacter依次存贮字符串中的每一个字符,$vstmp进行连接
// +----------------------------------------------------+
// | 如果长度等于所给出的长度的话,压入数组 |
if($vitmp == $vilen_)
{
array_push($vareturn,$vstmp);//将$vstmp依次压入数组$vareturn
$vitmp = 0;
$vstmp = '';
}
// +----------------------------------------------------+
// +----------------------------------------------------+
// | 退出 |
if(!strlen(substr($vsstr_, $viindex, 1)))//如果切完了字符串的话,就退出循环
{
array_push($vareturn,$vstmp);//将最后的一个$vstmp放入数组$vareturn
$vitmp = 0;
$vstmp = '';
break;
}
// +----------------------------------------------------+ $vscharacter = substr($vsstr_, $viindex, 1);//依次切字符串的每一个字符
$vsrealcharacter = substr($vsstr_, $viindex, 1);//依次切字符串的每一个字符
}
return($vareturn);//返回结果
}
// +----------------------------------------------------+
?>
/*******************************************
* Copyright : Baby Studio *
* Freeto : Everyone *
* Email : [email protected] *
* Author : Yingjie Pan *
*******************************************/
$vamyarr=(qswhSplit('我是qiushuiwuhen,请多多指教!','3'));
foreach($vamyarr as $vsitem) echo($vsitem.'<br/>');
function qswhSplit($str,$len){
preg_match_all("/([\xa0-\xff]?.){{$len}}/",$str,$arr);
return $arr[0];
}
?>
preg_match_all("/([\xa0-\xff]?.){1,{$len}}/",$str,$arr);