如果你是先自己试着实现,那么我给你一个我写的吧。虽然不一定是最优的,但是至少比你的效率要高。况且你写的那个是错误的。function delete_htm($scr)
{
    $str='';
    $l=strlen($scr);
    $i=0;
    $n=0;
    $start=0;
    for (;$i<$l;$i++) {
        if ($scr[$i]=='<') {
            $str.=substr($scr,$start,$n);
            $n=0;
            for (;$i<$l;$i++) {
                if ($scr[$i]=='>') {
                    break;
                }
            }
            $start=$i+1;
            continue;
        }
        $n++;
    }
    if ($n>0) {
        $str.=substr($scr,$start,$n);
    }
    return $str;
}