如何删除<table> .... </table>
之间的换行符,并在每次
前:
<table border="0" cellspacing="0" cellpadding="0" width="450" class="descriptiontable"><tr>
<td width="50%" valign="top">
<span class="displayb">Model Procesor:</span> Intel Celeron<br><span class="displayb">Frecventa procesor (MHz):</span> 2660<br><span class="displayb">Placa Video:</span> Intel Extreme Graphics 2<br><span class="displayb">Retea integrata:</span> 10/100Mbps, RJ-45<br><span class="displayb">Chipset:</span> Intel 845G<br>
</td>
<td width="50%" valign="top">
<span class="displayb">Capacitate RAM (MB):</span> 512<br><span class="displayb">Tip RAM:</span> DDR<br>
</td>
</tr></table>
并成为:
<table border="0" cellspacing="0" cellpadding="0" width="450" class="descriptiontable"><tr><td width="50%" valign="top"><span class="displayb">Model Procesor:</span> Intel Celeron<br><span class="displayb">Frecventa procesor (MHz):</span> 2660<br><span class="displayb">Placa Video:</span> Intel Extreme Graphics 2<br><span class="displayb">Retea integrata:</span> 10/100Mbps, RJ-45<br><span class="displayb">Chipset:</span> Intel 845G<br></td><td width="50%" valign="top"><span class="displayb">Capacitate RAM (MB):</span> 512<br><span class="displayb">Tip RAM:</span> DDR<br></td></tr></table>\n
第
答案 0 :(得分:4)
我认为您的意思是您拥有完整的HTML文件/字符串,并且只想删除表格中的换行符。
您应该使用DOM解析器来查找HTML的相应部分,但这个临时正则表达式解决方案可能对您有用:
$str = preg_replace('~[\r\n]+(?=(?:(?!<table).)*</table>)~is', '', $str);
$str = preg_replace('~</table>~i', "$0\n", $str);
如果你想添加\n
只有它已经存在,你可以将其作为第二个替换:
$str = preg_replace('~</table>(?!\n)~i', "$0\n", $str);
这匹配(系统独立)所有换行符,如果后面跟</table>
之间没有<table
的换行符。当然,这会导致嵌套表和类似的问题。这就是你应该使用DOM解析器的原因。
答案 1 :(得分:2)
$string = preg_replace('/\s\s+/', '', $string);
这会删除多个空格和换行符。
最后,您只需在结果中添加“\ n”:
$string = preg_replace('/\s\s+/', '', $string) . "\n";
这应该这样做。
答案 2 :(得分:0)
我找到了办法,我忘了张贴
$content = str_replace('</table',"</table>\n",str_replace("\n","",$str));