如$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>
"
这样的结果
谢谢
<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>
"
这样的结果
谢谢
这种需求肯定能满足,并且方法肯定是用正则表达式,但我的正则不好,自己研究下或再等等吧
我没发错什么东西啊!!用str_replace()$arr = ( " ", "_", "+" ); //把相关要去掉的加入数组中$a = str_replace( $arr, "", $a );
{
$re="/(<[\s]*".$key.">.*?"."<\/".$key.">)"."/iu";
$str=preg_replace($re,trim("$1"),$str);
return $str;
}试试这个思路就是先把你说的那部分都选出来,然后用trim去掉空格
奇怪了
<?
$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;
?>
str_replace(' ','',(strip_tags(htmlspecialchars_decode($fcontent)))),200,'…');
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);
不给分我咬死你
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);?>
为什么我这样就不行了呢?
除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 查看源码弄成一排 如上面效果
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);
能不能做成echo o('tr|div',$b);
就是多加标签用|分开
echo o('div',o('tr',$b));
$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;比较变态的做法