基本算法个人PHP 实现(四)

<?php
/**
 * php 字符串插入 2012/7/9 星期一
 */
function insertStr($str,$i,$Istr){
     if(strlen($str) < $i) return;
     $resStr = '';
     for($j = 0; $j < $i; $j++){
        $prev .= $str[$j];
     }

     for($k= $i;$k <= strlen($str); $k++){
        $last .= $str[$k];
     }

     return $prev.$Istr.$last;
}
//echo  insertStr('124',2,3);
/**
 * php 删除一段字符串 2012/7/9 星期一
 */
function removeStr($str,$from,$len){
    if($from > strlen($str) || strlen($str) < $from + $len) return 'invalid arguments';
    $resStr = '';
    for($i = 0; $i < $from; $i++ ){
       $prevStr  .= $str[$i];
    }
    for($j = $from+$len; $j <= strlen($str); $j++){
       $nextStr  .= $str[$j];
    }
    return $prevStr.$nextStr;
}
//echo removeStr('123456',5,1);
/**
 * ++
 * +-
 * -+
 * --
 * php 截取字符串 2012/7/9 星期一
 */
function sub_str($str,$start,$len = null){  
    // 判断可选值是否存在
     if(!isset($str) || !isset($start)) return 'invalid arguments!';
     if($start >=0 && $len >0 ){
         for($i = $start; $i < $start + $len ;$i++){
              $res .= $str[$i];
         }
     }
     if($start >= 0 && $len < 0 && strlen($str) + $len >= $start ){  // +-
         for($i = $start; $i < strlen($str)+ $len; $i++){
             $res .= $str[$i];
         }
     }
     if($start <= 0 && $len > 0 && strlen($str) + $start >= 0 ){      //-+
         for($i = strlen($str) + $start; $i < strlen($str); $i++){
             $res .= $str[$i];
         }
     }
     if($start < 0 && $len < 0 && $start < $len && strlen($str) + $start >= 0 &&strlen($str) + $len >= 0){  // --
          for($i = strlen($str) + $start; $i < strlen($str) + $len; $i ++){
             $res .= $str[$i];
          }
     }
     return $res;

}
echo sub_str('123456789',-10, -2).'<br>';
echo substr('123456789',-10, -2);

?>
posted @ 2012-07-09 00:56  ﹏Sakura  阅读(280)  评论(0编辑  收藏  举报