PHP 实现explort() 功能的详解

复制代码 代码如下:

  <?php

  /**

  * PHP 实现explort() 功能的详解

  */

  $str = ',1,2,3,4,321321,aaa,bbb';

  function myExplode($seg,$str,$limit=0){

  $_ret = array(0=>'');

  $len = strlen($str);

  $slen = strlen($seg);

  $_limit = 0;

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

  if(substr($str,$i,$slen) == $seg ){

  $_limit++;

  $i += $slen-1;

  continue;

  }else{

  $_ret[$_limit] .= $str[$i];

  }

  }

  if($limit < 0 )

  $_ret = array_slice($_ret, 0 , $limit );

  else{

  $_ret = $limit >= count($_ret) ? $_ret :  array_merge(array_slice($_ret, 0 , $limit-1 ), array(implode( $seg , array_slice($_ret,$limit-1))));

  }

  return $_ret;

  }

  var_dump(myExplode("4",$str));

  echo "<br>";

  var_dump(explode("4",$str));

  echo "<br>";

  ?>

  支持 limit 为负。。分割符为字符串