PHPプログラムに関する各種メモ書き

PHP の DOMオブジェクトを扱う

PHPでも JavaScript のように、html文書からDOMオブジェクトを扱いたい時があります。

● PHP の DOMオブジェクトを扱う

html例

<table id="my_id" data-height="999">
<tr>
<td>テストテーブル</td>
</tr>
</table>

phpでDOMを扱う

$dom = new \DomDocument();
libxml_use_internal_errors( true );  // html構造のエラーで止めたくない場合はこの行を有効にしてエラー抑制

// Domに喰わせるために html,body タグを追加する
$content_with_html_body = '<html><body>'.$content.'</body></html>';
$dom->loadHtml(mb_convert_encoding($content_with_html_body, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
libxml_clear_errors();  //  // html構造のエラーで止めたくない場合はこの行を有効にしてエラー抑制

// id = "my_id" を取得
$top_table = $dom->getElementById('my_id');
dump( $top_table);
dump( $top_table->ownerDocument->saveHTML() );  // 取得したdomオブジェクトのhtmlを確認する
dump( $top_table->getAttribute('data-height') );    // 取得したdomオブジェクトの data-height = 999 を取得
No.1611
11/01 09:52

edit