如$a=" <br> 
<p> 
<tr>            
<td width=\"60\"> 
            <p>一 </p> 
            </td> 
            <td width=\"91\"> 
            <p>二 </p> 
            </td> 
            <td width=\"89\"> 
            <p>三 </p> 
            </td> 
</tr> 
</p> 
</br> 
<div>aaa 
</div>" 
我想求个方法 
能指点标签去除空格 
如方法a(tr,$a) 
就去除tr之间空格 
得如$a=" <br> 
<p> 
      <tr> <td width="60"> <p>一 </p> </td> <td width="91"> <p>二 </p> </td> <td width="89"> <p>三 </p> </td> </tr> 
</p> 
</br> 
<div>aaa 
</div> 
" ;
别的空格不去掉
这样的结果 
如多个的话用|等可以去除 
如a(tr|div,$a) 
得 就可以去除tr和div里面的空格如结果
$a=" <br> 
<p> 
      <tr> <td width="60"> <p>一 </p> </td> <td width="91"> <p>二 </p> </td> <td width="89"> <p>三 </p> </td> </tr> 
</p> 
</br> 
<div>aaa </div> 

这样的结果 
谢谢

解决方案 »

  1.   

    楼主的需求有些意思,一个字符串中包含一段html代码,然后要去除指定字符串中的html标签间的空格
    这种需求肯定能满足,并且方法肯定是用正则表达式,但我的正则不好,自己研究下或再等等吧
      

  2.   

    昨天回的贴子怎么都没了?
    我没发错什么东西啊!!用str_replace()$arr = ( " ", "_", "+" ); //把相关要去掉的加入数组中$a = str_replace( $arr, "", $a );
      

  3.   

    function trimstr($key,$str)
    {
    $re="/(<[\s]*".$key.">.*?"."<\/".$key.">)"."/iu";
    $str=preg_replace($re,trim("$1"),$str);
    return $str;
    }试试这个思路就是先把你说的那部分都选出来,然后用trim去掉空格
      

  4.   

    大哥不行啊
    奇怪了
    <?
    $str=" <br>
    <p>
    <tr>
    <td width=\"60\">
                <p>一 </p>
                </td>
                <td width=\"91\">
                <p>二 </p>
                </td>
                <td width=\"89\">
                <p>三 </p>
                </td>
    </tr>
    </p>
    </br>
    <div>aaa
    </div>" ;$key="tr";// <tr>// </tr>
    function trimstr($key,$str)
    {
    $re="/(<[\s]*".$key.">.*?"."<\/".$key.">)"."/iu";
    $str=preg_replace($re,trim("$1"),$str);
    return $str;
    }
    echo $str;
    ?>
      

  5.   


    str_replace('&nbsp;','',(strip_tags(htmlspecialchars_decode($fcontent)))),200,'…');
      

  6.   


     function o($a,$b){
      
      
       
       return preg_replace('/(<'.$a.'.*?>)(.+?)(<\/'.$a.'>)/ie',"'\\1'.a1('\\2').'\\3'",$b);
      }
      
      function a1($a){
      
      
       return preg_replace('/\s/e','',$a);
      }
      $b = '<tr> 1 2 3 </tr>';
      echo o('tr',$b);
    不给分我咬死你
      

  7.   

    <?
    function o($a,$b){      return preg_replace('/(<'.$a.'.*?>)(.+?)(<\/'.$a.'>)/ie',"'\\1'.a1('\\2').'\\3'",$b);
      }  function a1($a){
          return preg_replace('/\s/e','',$a);
      }
      $a=" <br>
    <p>
    <tr>
    <td width=\"60\">
                <p>一 </p>
                </td>
                <td width=\"91\">
                <p>二 </p>
                </td>
                <td width=\"89\">
                <p>三 </p>
                </td>
    </tr>
    </p>
    </br>
    <div>aaa
    </div>" ; // $b = '<tr> 1 2 3 </tr>';
      echo o('tr',$a);?>
    为什么我这样就不行了呢?
      

  8.   

    我要的效果
    除tr之间空格 
    得如$a=" <br> 
    <p> 
          <tr> <td width="60"> <p>一 </p> </td> <td width="91"> <p>二 </p> </td> <td width="89"> <p>三 </p> </td> </tr> 
    </p> 
    </br> 
    <div>aaa 
    </div> 
    " ; 
    别的空格不去掉 
    把tr 查看源码弄成一排  如上面效果
      

  9.   

    加了个s好了
     function o($a,$b){
      
      
       
       return preg_replace('/(<'.$a.'.*?>)(.+?)(<\/'.$a.'>)/sie',"'\\1'.a1('\\2').'\\3'",$b);
      }
      
      function a1($a){
      
      
       return preg_replace('/\s/','',$a);
      }
      $b = '<br> 
    <p> 
    <tr>            
    <td width=\"60\"> 
                <p>一 </p> 
                </td> 
                <td width=\"91\"> 
                <p>二 </p> 
                </td> 
                <td width=\"89\"> 
                <p>三 </p> 
                </td> 
    </tr> 
    </p> 
    </br> 
    <div>aaa 
    </div>" 
    ';
      echo o('tr',$b);
      

  10.   

    可以了,分一定给你,不知道再加一个div怎么怎么加
    能不能做成echo o('tr|div',$b);
    就是多加标签用|分开
      

  11.   

    LZ大哥你嵌套一下不就行了
    echo o('div',o('tr',$b));
      

  12.   

    function qx($key,$str){ 
        $dataa = explode("<$key>",$str);/*使用一个字符串分割另一个字符串*/
    $str1=$dataa[0];
        $dataa = explode("</$key>",$dataa[1]);
    $str2=$dataa[1];
        $dataa = $dataa[0];
        return $str1."<$key>".preg_replace("/[\n\r\t]+/","",$dataa)."</$key>".$str2;
    }$str=" <br>
    <p>
    <tr>
    <td width=\"60\">
                <p>一 </p>
                </td>
                <td width=\"91\">
                <p>二 </p>
                </td>
                <td width=\"89\">
                <p>三 </p>
                </td>
    </tr>
    </p>
    </br>
    <div>aaa
    </div>" ;$str2=qx("tr",$str);
    echo $str2;比较变态的做法