PHP collection tool: intercept the required collection content data based on the start string and end string
function strCutByStr(&$str, $findStart, $findEnd = false, $encoding = 'utf-8'){ if(is_array($findStart)){ if(count($findStart) === count($findEnd)){ foreach($findStart as $k => $v){ if(($result = strCutByStr($str, $v, $findEnd[$k], $encoding)) !== false){ return $result; } } return false; }else{ return false; } } if(($start = mb_strpos($str, $findStart, 0, $encoding)) === false){ return false; } $start += mb_strlen($findStart, $encoding); if($findEnd === false){ return mb_substr($str, $start, NULL, $encoding); } if(($length = mb_strpos($str, $findEnd, $start, $encoding)) === false){ return false; } return mb_substr($str, $start, $length - $start, $encoding); }
Example:
$str = '1那是一场23我问问4567890维稳'; echo (strCutByStr($str, '那是', '稳'));//输出 一场23我问问4567890维