前提・実現したいこと
PHPを使用してtableタグをdivタグで囲みたいです。(AMP対応のためJavascriptは使用できません)。
[as is]
html
1<table> 2 <thead> 3 <tr><th>txt</th><th>txt</th></tr> 4 </thead> 5 <tbody> 6 <tr><td>txt</td><td>txt</td></tr> 7 <tr><td>txt</td><td>txt</td></tr> 8 </tbody> 9</table>
[to be]
html
1<div> 2 <table> 3 <thead> 4 <tr><th>txt</th><th>txt</th></tr> 5 </thead> 6 <tbody> 7 <tr><td>txt</td><td>txt</td></tr> 8 <tr><td>txt</td><td>txt</td></tr> 9 </tbody> 10 </table> 11</div>
該当のソースコード
以下のように実装したのですが、うまく動作しませんでした。
preg_replaceなど正規表現の置換でも問題ありません。
ご教示願いますmm
PHP
1add_filter( 'the_content', 'insert_table_outer'); 2function insert_table_outer($html) { 3 $doc = new DOMDocument(); 4 $doc->loadHTML( mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); 5 $tables = $doc->getElementsByTagName('table'); 6 for ($i=0;$i<$tables->length;$i++) { 7 $parent = $doc->createElement('div'); 8 $table = $tables->item($i); 9 $parent->appendChild($table); 10 } 11 $out = mb_convert_encoding($doc->saveHTML(), 'utf-8', 'HTML-ENTITIES'); 12 return $out; 13}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/19 01:14