php下关于中英数字混排的字符串分割问题

  在网上找了一点时间,发现都不怎样。

  后来就自己想了个办法,算是原创吧。

  只是用截取加替换的功能。

  

复制代码 代码如下:

  function smssubstr($string, $length) {

  if(strlen($string) <= $length) {

  return $string;

  }

  $strcut = '';

  for($i = 0; $i < $length; $i++) {

  $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];

  }

  return $strcut;

  }

  for($i=1; $i<=$smsnum; $i++){

  ${'smscontent'.$i} = smssubstr($message,$smsper);

  $message = str_replace(${'smscontent'.$i},"",$message);

  }