php-如何使用preg_replace将表格宽度更改为100%
作者:互联网
我想将表格宽度更改为100%(如果宽度值以像素为单位).
我的意思是,如果表格宽度看起来像width =“ 500”或width =“ 500px”,那么我想用100%替换它.
我的意思是像这个width =“ 100%”.
有人可以帮我preg_replace吗?
$content = 'holds all my html content';
$replace = '100%';
preg_replace($pattern,$replace,$content,-1);
有人可以通过$pattern帮助我吗?
解决方法:
我建议不要使用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();
如果要替换所有表的宽度为100%,请删除if子句.当前,它会检查以确保宽度不是基于百分比的.
编辑
万一您不想使用格式正确的HTML,可以通过更改以下内容来获取没有body标签的body内容:
$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>
标签:preg-replace,php,regex 来源: https://codeday.me/bug/20191031/1972608.html