2016-09-15 11 views
0

作る私は、彼らが正しいHTML5テーブルになるように(PHPで)古いHTMLテーブルをクリーンアップするための最良の方法を探しています - それは、ほとんどが許可されていない属性を剥離する問題です。それに加えて、これらのテーブルのインラインスタイルも削除したいと思います。もしそれが一度に達成できるなら、本当に素晴らしいでしょう。PHPのパースHTMLのテーブルとその正しいHTML5テーブル

私は主に定期expresionsを研究してきたが、正規表現はそれを実行することをお勧めされていないことを読んだ後、私は役立つだろう何か他のものを探しています。

+0

DOMDocumentを使用すると、正規表現で問題が発生する – RamRaider

答えて

1

あなたが属性を除去するの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>'; 
+0

ありがとう、ありがとう!あなたが本当に答えを投稿する前に私はそれを理解しましたが、それはまさに私が探していたものです。 – user1970395

関連する問題