编程语言
首页 > 编程语言> > php-如何使用preg_replace将表格宽度更改为100%

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