Я ищу лучший способ очистить старые таблицы 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>';
Других решений пока нет …