Posted in PHP onJune 20, 2013
<?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 为负。。分割符为字符串
PHP 实现explort() 功能的详解
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@