18) { throw new \Exception("start is out of range!"); } if ($len <= 0 || $start + $len > $i_len) { throw new \Exception("end is out of range!"); } } $start = $start < 0 ? 0 : $start; $start = $start > $i_len ? $i_len : $start; $len = $len < 0 ? 0 : $len; $len = ($start + $len) > $i_len ? $i_len - $start : $len; $r = (int) Pow(10, $i_len - $start - $len); $l = (int) Pow(10, $i_len - $start); $ret = $i - intval($i / $l) * $l; // 去除左边 $ret /= $r; // 去除右边 return (int) $ret; } }