<?$a=<<<eot
12345<h1><h1>七七七七七七七七七七七七七七七</h1></h1>12345
eot;function rsubstr($fd,$start,$end){
$startpos = strpos($fd,$start)+strlen($start);//9 
$endpos = strpos($fd,$end,$startpos)-1;//截取标记
//echo "||$startpos-$endpos ||";
echo substr($fd,$startpos,$endpos-$startpos);
}
echo rsubstr($a, '<h1>','</hl>' );
?>数学问题哈哈……

解决方案 »

  1.   

    无语。你看看源代码,后面根本没有截干净。跟你这样示范下:<?$a=<<<eot
    12345bb七七七七七七七七七七七七七七七1aeeabc12345
    eot;function rsubstr($fd,$start,$end){
    $startpos = strpos($fd,$start)+strlen($start);//9 
    $endpos = strpos($fd,$end,$startpos)-1;//截取标记
    //echo "||$startpos-$endpos ||";
    echo substr($fd,$startpos,$endpos-$startpos);
    }
    echo rsubstr($a, 'bb','abc' );
    ?>截的结果根本不对。
      

  2.   

    $a=<<<eot
    12345bb七七七七七七七七七七七七七七七1aeeabc12345
    eot;
    function rsubstr($str, $start, $end)
    {
    $pos = strpos($str, $start);
    if($pos === false) return "";
    $a = $pos + strlen($start);
    $b = strpos($str, $end, $a);
    if($b === false) return "";
    return substr($str, $a, $b - $a);
    }
    echo rsubstr($a, 'bb','abc' );
      

  3.   

    $endpos-$startpos->($endpos-$startpos)
      

  4.   

    你第一个的错误是在于
    echo rsubstr($a, '<h1>','</hl>' );
    这行代码中</hl>应该是</h1>;
    把数字1写成字母l了
      

  5.   

    <?
    $a=<<<eot
     aaaaaaaa zairwolf七弦月b/h1a</td>
    eot;$b=array('zairwolf','b/hla');echo rsubstr($a,$b[0],$b[1]);function rsubstr($fd,$start,$end){
    $startpos = strpos($fd,$start)+strlen($start);
    $endpos = strpos($fd,$end);
    Return substr($fd,$startpos,$endpos-$startpos);
    }