PHP 解析 HTML 个表并使它们正确 HTML5 个表
PHP parse HTML tables and make them correct HTML5 tables
我正在寻找清理旧 HTML 表(使用 PHP)的最佳方法,以便它们是正确的 HTML5 表 - 这主要是剥离问题不允许的属性。除此之外,我还想去除这些表格的内联样式。要是能一次性搞定就太好了。
我一直在研究正则表达式,但在阅读了不建议使用正则表达式执行该操作后,我正在寻找其他有用的东西。
关于如何使用 DOMDocument 去除属性的快速示例 - 可以扩展它以添加属性,但这是另一回事。
$strhtml="
<table width='100%' cellpadding='10px' cellspacing='5px' border='2px'>
<tr>
<td align='left' valign='top'>banana</td>
</tr>
</table>";
$remove=array('cellpadding','cellspacing','border','align','valign');
$dom=new DOMDocument;
$dom->loadHTML( $strhtml );
$elements=$dom->getElementsByTagName('*');
foreach( $elements as $node ){
foreach( $remove as $attrib ){
if( $node->hasAttribute( $attrib ) ){
$node->removeAttribute( $attrib );
}
}
}
/* debug output */
echo '<textarea cols=100 rows=10>',$dom->saveHTML(),'</textarea>';
我正在寻找清理旧 HTML 表(使用 PHP)的最佳方法,以便它们是正确的 HTML5 表 - 这主要是剥离问题不允许的属性。除此之外,我还想去除这些表格的内联样式。要是能一次性搞定就太好了。
我一直在研究正则表达式,但在阅读了不建议使用正则表达式执行该操作后,我正在寻找其他有用的东西。
关于如何使用 DOMDocument 去除属性的快速示例 - 可以扩展它以添加属性,但这是另一回事。
$strhtml="
<table width='100%' cellpadding='10px' cellspacing='5px' border='2px'>
<tr>
<td align='left' valign='top'>banana</td>
</tr>
</table>";
$remove=array('cellpadding','cellspacing','border','align','valign');
$dom=new DOMDocument;
$dom->loadHTML( $strhtml );
$elements=$dom->getElementsByTagName('*');
foreach( $elements as $node ){
foreach( $remove as $attrib ){
if( $node->hasAttribute( $attrib ) ){
$node->removeAttribute( $attrib );
}
}
}
/* debug output */
echo '<textarea cols=100 rows=10>',$dom->saveHTML(),'</textarea>';