PHP 获取两文本中间内容 getSubstr

<?php
function getSubstr($str, $leftStr, $rightStr) {
    	if(strlen($str)<1 || strlen($leftStr)<1 || strlen($rightStr)<1){
    		return '';
    	}
        $left = strpos($str, $leftStr);
        //echo '左边:'.$left;
        $right = strpos($str, $rightStr, $left + 1);
        //echo '<br>右边:'.$right;
        if ($left ===FALSE or $left === FALSE or $left < 0 or $right < $left or $right == $left) {
            return '';
        }
        return substr($str, $left + strlen($leftStr) , $right - $left - strlen($leftStr));
    }
 

与易语言的“文本_取出中间文本()”同理,网上的代码有部分问题,导致在一定情景下无法正常获取,另外网上的代码是判断$left小于0,strpos并不会返回小于0的数值,不存在时返回的是FALSE,加粗部分已改善。
文中如有错误请指出,谢谢。

附原本代码:

function getSubstr($str, $leftStr, $rightStr) {
        $left = strpos($str, $leftStr);
        //echo '左边:'.$left;
        $right = strpos($str, $rightStr, $left);
        //echo '<br>右边:'.$right;
        if ($left < 0 or $right < $left) {
            return '';
        }
        return substr($str, $left + strlen($leftStr) , $right - $left - strlen($leftStr));
    }