我建议不要使用preg_replace
,并举一个使用 DOM 的例子
$dom = new DOMDocument();
$dom->loadHTML($content);
foreach ($dom->getElementsByTagName('table') as $item) {
if(strpos($item->getAttribute('width'), '%') === false) {
$item->setAttribute('width', '100%');
}
}
$content = $dom->saveHTML();
如果您想将所有table
的 's 替换为具有 的宽度100%
,请删除该if
子句。目前,它会检查以确保width
不是基于百分比的。
编辑
以防万一您不想要格式良好的 HTML,您可以通过更改获得不带正文标签的正文内容:
$content = $dom->saveHTML();
到:
$content = substr($dom->saveXml($body->item(0)), 6, -7);
所以如果你有
$content = '<table width="600px"><td>Stuff</td></table><table width="50%"><td>Stuff</td></table>';
你最终会得到:
<table width="100%"><td>Stuff</td></table><table width="50%"><td>Stuff</td></table>