先把<textarea .... > 。 </textarea>提取,同时替换成[text]之类的其他标记
再删除所以空白文件
删除完之后,还原<textarea .... > 。 </textarea>既然不会一次性完事的正则,就变相解决,呵呵

解决方案 »

  1.   

    qingxia(青虾) 
    你可能没有理解我说的。按你说的是很多余的动作啊。555
      

  2.   

    你不是怕text里的\n\r被删除吗?
    通过我的方法可以防止删除text里的这些符号啊
      

  3.   

    我不太理解你的想法。我想你可以把他当成UBB 一样来看吧?你写出表达式来看看
      

  4.   

    $str = preg_replace("|<(.+)>(.+)</\\1>|iseU", "replaceIt('\\1','\\2')", $str);function replaceIt($tagName, $innerText)
    {
    echo $tagName;
    if(strtolower($tagName) != "textarea")
    {

    $innerText = preg_replace("|([\s])+|s", "\040", $innerText);
    }
    return "<$tagName>$innerText</$tagName>";
    }
      

  5.   

    ice_berg16(寻梦的稻草人) 我回家后測試一下。謝謝先
      

  6.   

    ice_berg16(寻梦的稻草人) 用了你的函数, 网页全变了. 乱了套. 能否写一个完整的?是优化HTML 输出的. 我用ob_start(OptimizeHtml);来截取 输出的HTML代码然后用 function OptiomizeHtml 来做处理能帮我写一个好的吗?
      

  7.   

    http://www.souting.com/index.htm就和着个网站一样. 他输出的HTML 都是经过优化处理的.大家帮帮忙了
      

  8.   

    <?php
    function OptiomizeHtml($text) {
      return preg_replace_callback('/<(\w+).*>.*<\/\\1>/s','callback',$text);
    }
    //preg_replace_callback回调函数
    function callback($regs) {
      $p = array('/ +/','/^ +/m','/[\r\n]+/');
      $r = array(' ','','');
      if(strtolower($regs[1]) != 'textarea')
        return preg_replace($p,$r,$regs[0]); //不是textarea对象则连续空格换成一个空格;删去行首空格;删去换行符
      return $regs[0];
    }ob_start('OptiomizeHtml');//来截取 输出的HTML代码
    ?>
    注意:按此法操作时,当输出中有js代码时一定不能少了行结束符“;”否则要象textarea一样做排除处理
      

  9.   

    xuzuning(唠叨)  大哥, 
    http://www.souting.com/Search.asp?Key=f&Type=Sn你看看他的代码. JAVASCRIPT 的都是进行加密了.如果能够做到呢? 就是利用 ob_start('OptiomizeHtml');// 截取HTML 代码, 然后对其进行操作.
    如何可以实现想那网站一样的效果? 如能告知, 感恩不尽~~~~````
      

  10.   

    javascript加密只是简单的escape了function Uc(str)
    {
       eval(unescape(str));
    }
      

  11.   

    javascript加密只是简单的escape了function Uc(str)
    {
       eval(unescape(str));
    }
    我想他加密的原因可能是: 不用考虑关闭 ";" 符号了.  (我猜的)老刀能否写一个处理, 跟他一样的出来呢? 考虑更完整, 实现更简单的.谢了
      

  12.   

    <script><!--//window.status = '本站的网址是:souting.com,"souting"即"搜听"的拼音.请把souting.com介绍给您的朋友,谢谢您!';  function Uc(Url) { window.open('Playsong.asp?'+Url,'UrlCheck', 'resizable=yes');}  function Ls(Lid) { window.open('Lyrics/'+Lid+'.htm','Lyricsee', 'scrollbars=yes,resizable=no,width=500,height=320,top=166,left=266');}//--></script>并没有加密,也并没有缺少行结束符“;”