htmlspecialchars ( string string [, int quote_style [, string charset]])
please try this function

解决方案 »

  1.   

    我想可以使用这个思路:
    不要去处理HTML标签,一一去读字符串中的字符,即读到一个 < 就入栈(计数加一),读到一个 > 就出栈(计数减一),这样,如果栈为空(计数为0),则表示当前的字符不是HTML标签的组成部分。这样,只收集非HTML标签字符即可。
      

  2.   

    我也有过这种想法,先截取一段,比如400个字符
    然后计算里面<table>、</table>标签的个数,最后再补上不够的
    但这样速度不是很好,可能我的算法不行,谁能写一个吗?
      

  3.   

    我草草写了一个,你看看:
    <?php
    function htmlsubstr($str, $start, $length) {
    $stack = 0;
    $newstr = '';
    for ($i = 0; $i < strlen($str); $i++) {
    $chr = $str{$i};
    if ($chr == '<') $stack++;
    if ($chr == '>') $stack--;
    if ($stack == 0) $newstr .= $chr;
    }
    return substr($newstr, $start, $length);
    }
    ?>
      

  4.   

    用strip_tagsecho substr(strip_tags($substr),0,100);